Docker安装、配置、使用、搭建靶场
安装在Linux的Docker具体步骤方法及配置使用
一、通过LinuxEnvConfig脚本进行对Docker进行安装
git clone https://gitee.com/yijingsec/LinuxEnvConfig.git
cd LinuxEnvConfig
sudo bash LinuxEnvConfig.sh

通过bash进入脚本后依照自己的需求进行配置。
我们这里选择Docker进行配置

二、配置Docker
安装成功后可以使用以下命令对docker运行状态进行查看
systemctl status docker

出现该界面发现输入什么都无法显示,不要慌,按==Q==或==CTRL + C==退出
可以输入以下命令对docker进行启动并设置自启动
systemctl start docker
#启动docker服务
systemctl enable docker
#设置自启动docker服务

设置好docker的配置后配置docker compose
一般docker compose在新版docker中会自带,对于老版本docker可能会需要手动安装,我们这里尝试安装docker compose测试一下
==docker compose老版本可安装,安装最新的docker无需安装==
使用==LinuxEnvConfig==脚本
sudo bash LinuxEnvConfig.sh
选择==配置docker-compose==

建议使用==gitee==仓库进行安装
因为github为国外服务器,国内可能无法访问,我们这里使用国内的gitee进行安装

选择后会自动安装docker-compose,耐心等待一下
Q&A:
为什么docker和compose中间会有一个==-==
因为在旧版本中,使用docker compose需要输入docker-compose up才可以启用容器

新版本貌似砍掉了这么个横杠,所以我们最好使用新版docker compose,最新的毕竟是更新好的,稳定的,功能强大的

==这里我们安装docker-compose结束==
我们这里可以对Docker配置国内仓库,因为服务器基本都在国外,所以我们需要配置国内镜像源以便我们更快更流畅的拉取docker镜像
依旧是掏出我们的神器==LinuxEnvConfig==
使用==LinuxEnvConfig==脚本
sudo bash LinuxEnvConfig.sh

这里特别说明一下

三、Docker使用
我们这时候可以尝试拉取一个docker镜像
通过以下命令进行拉取hello-world
docker pull docker.io/library/hello-world:latest
hello-world是最基础的docker镜像,一般用来测试docker安装配置是否成功
这里我们拆开以上命令对各个命令进行分析
==docker==Docker命令的前缀,就像使用sh脚本必须加bash或使用nmap必须加nmap一样
==pull==Docker的拉取镜像操作,从Docker的仓库拉取镜像
==docker.io==Docker Hub的默认域名,默认仓库,一般国内无法访问
==library==Docker镜像存放的位置,就像是你的电脑新建了一个名为library的文件夹,你要从这个文件夹提取文件,这就是你的文件目录
==hello-world==镜像名称,这就是你要拉取的镜像
==latest==标签tags,一般用来标注版本号等
这里我们运行该命令

到这里我们运行完成了,但是怎么找到我们刚刚拉取的镜像呢?
我们通过以下命令进行查看我们拉取的镜像
docker images

我们拉取的所有镜像就可以看到了,镜像拉取完成了怎么样去用这个镜像?
docker run hello-world:latest
==docker run==是创建并运行容器的命令

这样我们就使用完成
创建完容器了,那我们想对容器进行操作,怎么操作呢?
docker ps -a
#查看所有容器包括已停止的容器
docker ps
#查看所有正在运行的容器

我们想对这个容器进行删除

我们查看docker容器的名字,指定容器并使用以下命令 (删除容器前,确保容器已停止,删除镜像前确认没有容器使用该镜像)
docker rm adoring_bhaskara


删除成功
我们要是想删除我们拉取的镜像呢(删除容器前,确保容器已停止,删除镜像前确认没有容器使用该镜像)
查看docker镜像名称

docker rmi hello-world:latest

删除镜像完成
Q&A:
docker拉取镜像删除镜像好麻烦,有没有更方便的办法来简短的删除和拉取?
有的,有的
我们拉取镜像没必要一个词组一个词组的去记
比如我们拉取helloworld镜像需要输入他的位置,默认域名,这些可以省略
比如:
docker pull hello-world:latest
#省略拉取域名和存放镜像的位置
docker pull hello-world
#省略了标签,拉取最新的默认的镜像


删除镜像或容器输入名称太长,我们可以输入他的ID(删除容器前,确保容器已停止,删除镜像前确认没有容器使用该镜像)
docker rm [id]
#删除[指定id]的容器
docker rmi [id]
#删除[指定id]的镜像


大致docker基础命令学会了,我们开始一点进阶操作
通过docker拉取centos镜像
docker pull centos:7

使用docker run命令让centos跑起来
docker run -it --name=mycentos1 centos:7 /bin/bash
-i 以交互模式运行该容器
-t 分配一个伪终端,容器启动后进入容器命令行
--name=mycentos1 自定义名称为mycentos1
centos:7 使用拉取的centos镜像
/bin/bash 启动容器后自动打开一个bash

但是这个系统退出后会自动关闭,不会持续启动
如果想持续启动需要在使用docker run命令加入-d 即守护进程,退出不会停止
docker run -dit --name=mycentos centos:7

这里我们如何进入该容器
docker exec -it mycentos /bin/bash
选择进入的容器也可以使用id指定要进入的容器

这里退出了该容器,该容器不会默认退出
这里说明一下,-i、-t最好一起使用,-i为交互模式,-t为伪终端
如果参数只添加了-di,代表这个容器只有交互,但没有终端,bash会等待输入,无法进行直接输入,所以不会停止
如果参数只添加了-dt,代表这个容器只有终端,但是没有交互,因为检测到有终端运行,所以该容器不会停止
如果参数只有-d,这个容器既没有交互,又没有终端,由于前台没有运行程序,他会默认关闭,所以只有-d参数,该容器会直接停止
容器的生命周期取决于内部的前台程序,只要有一个程序运行,容器就不会停止
-d参数仅适用于无需使用终端等容器,因为有前台程序运行,容器不会停止
如何启停止容器
docker stop [容器名或容器id]
#停止容器
docker kill [容器名或容器id]
#强制停止容器
docker start [容器名或容器id]
#启动容器

如果容器停止了或启动了,如何查看历史操作
使用docker logs命令,查看日志
docker logs [容器名或容器id]

四、搭建靶场
(1)vulhub靶场
vulhub靶场gitee仓库地址 https://gitee.com/yijingsec/vulhub
vulhub靶场docker镜像地址 https://hub.docker.com/u/vulhub
通过git命令下载靶场
git clone --depth 1 https://gitee.com/yijingsec/vulhub.git
#--depth参数是将该项目浅克隆到本地,他只克隆最近一部分的历史记录,不会将完整的历史纪录全部克隆

进入你要开启的靶场,这里我拿ThinkPhP靶场为例
cd vulhub/thinkphp
#进入thinkphp目录
cd 5.0.23-rce
#选择靶场版本
这里我们发现里面有docker-compose.yml文件,这里我们可以通过docker compose进行一键部署靶场

docker compose up -d
#使用docker compose命令进行配置靶场
#up启动所有服务
#-d后台运行

这里我们部署完成,在浏览器输入虚拟机ip地址:端口

这里我们靶场搭建成功
如何关闭该靶场
回到该容器的docker-compose.yml文件所在目录
通过该命令关闭服务
docker compose down

(2)VulApps
VulApps靶场gitee仓库地址 https://gitee.com/yijingsec/VulApps
VulApps靶场docker镜像地址 https://hub.docker.com/r/medicean/vulapps
使用浏览器打开gitee仓库地址 https://gitee.com/yijingsec/VulApps
找到我们想要打开的靶场
这里我们使用thinkphp靶场

在里面通常会有如何搭建靶场,根据个人需求自行更改端口号


(3)Vulfocus
Vulfocus靶场gitee仓库地址 https://gitee.com/yijingsec/vulfocus
Vulfocus靶场docker镜像地址 https://hub.docker.com/u/vulfocus
这里我们使用==LinuxEnvConfig==脚本进行安装Vulfocus靶场

使用浏览器打开访问地址
http://[ip地址]:88

按照以下步骤对靶场镜像进行同步

点击同步后可能会显示空白,记得刷新以下或者点击其他列表再回到该页面

这样就会有许多靶场等着你去试验

下载完成后回到主页就会发现你下载的靶场

启动完成后会自动生成网址,这时尽情试验吧!!
如以上内容有问题,望提出意见,我将及时改正
更多docker使用方法可通过以下链接学习
https://docker.it-docs.cn/get-started/introduction Docker中文文档
https://www.runoob.com/docker/docker-tutorial.html Docker教程|菜鸟教程
评论