一、Docker:
应用容器引擎,虚拟化工具 响应速度特别快,轻便高效 运行于主机内核,自己没有内核(与主机共用,而vm是虚拟出一个完整的)
镜像:mages一个模板,提供容器运行时所需的程序,库等和配置参数,不包含动态数据
容器:container 进程 模板制作出来的
仓库:放镜像模板的 云仓库和本地仓库
云仓库:https://hub.docker.com
二、安装docker
检测网络连通性(ping www.baidu.com)
下载安装脚本文件(curl -fsSL get.docker.com -o get-docker.sh)
给脚本文件添加执行权限(chmod +x get-docker.sh)
使用脚本进行安装(./get-docker.sh --mirror Aliyun)
若等待时间过长,则干掉指定进程(kill 9 PID)
若脚本安装一直失败,则使用yum安装(yum -y install docker)
测试安装结果(docker version)
启动docker服务(systemctl start docker)
设置docker服务开机自启(systemctl enable docker),命令需要执行两次
三、如何使用xshell进行文件传输
rz:上传指令(rz 命令后在打开的窗口选择要上传的文件)
sz:下载指令(sz 文件名,在打开的窗口选择下载路径)
若无该命令,则需要安装命令(yum -y install rzsz)
四、常用docker命令(image、container)
docker云仓库网站(https://hub.docker.com)
查看本地镜像(docker images)
下载dvwa镜像(docker pull sagikazarmark/dvwa)
删除镜像(docker image rm -f 镜像ID)
通过镜像创建运行一个容器(docker run 镜像ID)
进入容器(docker exec -it 容器ID|容器名 /bin/bash)(it:交互式)
查看容器信息(docker ps -a)
容器状态操作(docker start/stop/restart/kill 容器ID)练习
查看容器内服务的运行日志(docker logs 容器ID)
五、复制文件(dvwa为容器名)
前提:创建dvwa容器(docker run -d --name dvwa -p8080:80 镜像ID)
启动容器dvwa(docker start dvwa)
进入容器dvwa(docker exec -it dvwa /bin/bash)
创建test.txt文件(touch test.txt)
将当前目录的信息重定向到test.txt文件中(ls -al > test.txt)
退出容器(exit)
复制命令,容器——>宿主机(docker cp dvwa:/test.txt /root)
输出文件内容(cat /root/test.txt)
复制命令,宿主机——>容器(docker cp /root/sql注入.md dvwa:/)
进入容器查看复制结果(docker exec -it dvwa /bin/bash)
docker-compose up -d
六、数据卷
宿主机创建一个共享目录(/root/test)
创建启动容器(docker run -d --name test -v /root/test:/root/test 镜像ID)
进入容器test(docker exec -it test /bin/bash)
进入/root/test目录(cd /root/test)
打开新的终端,在宿主机的/root/test目录下新建文件
查看容器/root/test目录下的变化
七、创建容器常用
docker run --name dvwa -p8080:80 镜像ID(将容器的80端口,映射到宿主机的8080端口)
docker run --name dvwa -p8080:80 e901498e651a
本地主机访问8080端口时需要关闭Centos防火墙(该操作需要在容器创建之前完成)
九、镜像的导入和导出
导出(export)
进入dvwa容器(docker exec -it dvwa /bin/bash)
创建标志文件(touch 6.10.test.txt)
退出容器(exit)
将容器导出为镜像(docker export 容器ID > test.tar)
导入(import)
下载钉钉中的test.tar文件,上传至虚拟机/root目录下
将压缩到导入到docker本地镜像(docker import - test < test.tar)
查看本地镜像(docker images)
利用导入的镜像创容器(docker run --name test test /run.sh)
进入容器查看导出镜像前创建的文件(docker exec -it test /bin/bash)
ls -al
十、docker镜像命令:
查看本地镜像:docker images
删除镜像:docker image rm -f 镜像id
创建运行容器:docker run 镜像id
查询容器信息:docker ps -a (80 3306端口)
进入容器:docker exec -it(以交互式) 容器id /bin/bash
容器状态操作:docker start/stop/restart/kill 容器id
创建容器常用:docker run --name dvwa -p8080:80(将容器80映像到宿主机的8080端口) 镜像id
导入镜像:docker import - test < ***.tar
docker run test /run.sh
十一、利用基础镜像制作属于自己的靶场环境
删除所有容器(docker rm -f $(docker ps -aq))
在宿主机的root目录下创建html共享文件夹
创建启动基础镜像容器(docker run -d --name myserver -p8080-8089:80-89 -v /root/html:/var/www/html 镜像ID[dvwa的])
上传DVWA靶场文件至/root/html目录下(修改数据库配置文件中的用户名为root,密码不变)
将我创建的自定义镜像导入到本地(docker import - myserver < myserver.tar)
并创建启动容器(docker run -d --name myserver -p8080-8089:80-89 myserver /run.sh)
十二、安装vulhub环境(综合靶场)
需要docker和docker-compose环境
将docker-compose-Linux-x86_64文件上传到Centos虚拟机的/usr/local/bin/目录下
将docker-compose-Linux-x86_64重命名为docker-compose
(mv docker-compose-Linux-x86_64 docker-compose)
给docker-compose添加可执行权限(chmod +x docker-compose)
查看版本(docker-compose -v)
回到root家目录(cd /root)
安装git工具(yum -y install git)
安装vulhub相关文件(git clone GitHub - vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Compose)
将压缩包上传到/root目录下,再解压缩(tar -zxvf vulhub.tar.gz)
进入vulhub目录(cd /root/root/vulhub)
在vulhub.org网站上选择要部署的靶场环境,点开(最上面的path为配置文件docker-compose.yml路径)
进入指定目录启动(docker-compose up -d)
十三、docker可视化管理工具portainer
前提:网络连通、docker启动
下载portainer镜像(docker pull portainer/portainer)
创建启动portainer容器(docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/poporiner)
浏览器访问(http://IP:9000)
设置管理员密码(长度最少为12位,123456789qwe)
十四、docker镜像加速:
通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
# sudo vim /etc/docker/daemon.json
添加或修改内容:
{
"registry-mirrors": ["https://jn05pqka.mirror.aliyuncs.com"]
}
:wq 保存后退出。
重启服务:
# sudo systemctl daemon-reload
# sudo systemctl restart docker