赞
踩
前言:
接触Docker半年了吧,觉得这技术挺有意思的,也很实用,所以想跟大家分享一下。本文主要目的是以最快的方式带领没接触过Docker的小伙伴迅速掌握几个方便、快捷的Docker命令,然后可以简单的用这些命令进行靶机、实验环境的搭建。重点是快速上手,所以不会讲太多理论。希望大佬们不要笑。
1.什么是容器技术:
容器技术是一种类似于传统虚拟机的虚拟化技术,但是更加轻量化。
2.什么是Docker:
Docker是容器技术中的一种,也用的最多,但是容器并不止这一种,比如还有rkt等。
下面以搭建一个简单的wordpress站点为例子,从0开始讲解。
注:
docker的安装教程网上很多,这里不再赘述
docker命令前面往往需要以’docker’开头
docker命令需要root权限
1.docker search 镜像名
在docker hub上搜索指定镜像,例如:
docker search centos7
2.docker pull 镜像名称
找到需要的镜像后,用该命令进行下载,一般系统镜像也就两三百M。
3.docker images
查看本地当前存在的镜像:
TAG是容器的标签,用来区分不同的容器,如果不填写的话默认是latest,如果本地不存在latest版本则会自行下载。
IMAGE ID是镜像的16位短ID
4.docker run -itd –-name 容器名称 -p 主机端口:容器端口 -p...... 镜像名称:标签 /bin/bash
这条命令基本能满足环境的搭建了,既然是快速上手所以先不用在意每个参数的含义。
-p是用来映射端口的 ,不需要映射的情况下可以忽略。
例如:
这样就成功创建了一个centos的容器,并将容器的80端口映射到主机的81端口上。
下面这一长串是容器的完整ID.
5.docker ps
列出当前正在运行的容器
例如:
6.docker stop/start 容器名/ID
停止或启动容器,若是填写容器名则要全写上去,如果用的是ID,这里的ID并不需要写完整的ID或者16位短ID,只需要能与其他容器区分开即可,就算你只写第一个字符都是可以的,只要能区分开。
7.docker ps -a
列出所有的容器,包括运行中的和停止的
8.docker attach 容器名/ID
进入到容器中
进入后可以看到区域名称变成了容器的短ID
9.ctrl+d
退出并停止容器
再次连接会提示容器已经停止。
10.ctrl+p(按完放开)+q
退出而不停止容器:
11.进入容器后,往往容器中会缺少个别常用命令,例如ifconfig、wget等,只需要正常下载即可。然后就是正常的下载搭建wordpress所需的环境。例如这里为了方便我直接使用现成的集成环境:
wget http://dl.wdlinux.cn/files/lanmp_v3.tar.gz
tar zxvf lanmp_v3.tar.gz
sh lanmp.sh
然后选择1进行下载即可。
完成后httpd和mysqld默认已经启动
然后退出容器。
12.docker cp 主机中的文件目录 容器名:容器中的目录
将文件从主机拷贝到容器中
13.然后就是在容器中按照搭建环境的步骤去进行就可以了。
最后用ifconfig查看一下容器的ip即可在主机中直接访问对应的站点了,若是没有安装ifconfig的话,可以在容器外使用命令docker inspect 容器名 | grep IPAddress
查看容器信息,里面有ip:
若是搭建在虚拟机中的直接在物理机上访问虚拟机IP:81端口 即可访问到了(这里忽略防火墙的问题)
由于docker技术很受欢迎,所以网上已经有很多现成的环境可供下载使用,例如vulhub、vulstudy等。
下面以vulstudy为例,讲解下如何使用:
注:docker-compose的安装教程网上很多,我就不赘述了。
1.下图是vulstudy目录中的文件,可以看到有一个docker-compose.yml文件,在这里我们只需要运行docker-compose up -d 即可同时创建所有目录中存在的靶机环境,当然,这个过程会有点慢,因为每个靶机环境中并不包含相应镜像文件,下载这些文件的操作被写到了每个环境对应的Dockerfile(用来描述如何创建镜像的过程的文件)中。会先去执行这些Dockerfile创建镜像,然后才运行它们。
2.下图是每个环境单独的目录内容,以DVWA为例:
docker-compose.yml中记录了容器启动时所要进行的一些配置:
例如端口那里,设置的就是端口映射,可以在使用之前自己根据需要进行修改。
要单独创建靶机的话,对于存在Dockerfile文件的,需要先到目录下执行如下命令先创建镜像:
docker build -t 要命名的镜像名称 . (注意这里有一个’点’,并且前面有空格)
然后:
docker-compose up -d
按.yml文件创建容器。
最后根据映射的端口或者IP进行访问就可以了。
暂时就这么多,现在应该能够简单搭建自己想要的环境了。有问题希望大家指正。如果效果还可以的话,后面有需要可以再写点深一点的内容。毕竟很多东西我也还在学习中,先为大家多试试水,后面将经验分享给大家,哈哈。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。