安装docker
在root权限下执行此命令
curl -s https://get.docker.com/ | sh //安装新版本的docker
sudo apt purge --autoremove docker.io //卸载老版本的docker
sudo apt install docker.io //使用Ubuntu自带的docker包管理器安装,但是一般版本比较老
docker服务可能需要手动启动:service start docker
安装docker-compose
Docker-compose用于组合服务与内网。有部分环境涉及到多个容器,且不同环境开启的端口、目录也不相同,所以Vulhub选择使用docker-compose做环境一键化管理工具。用户不再需要学习docker命令的各种参数与用法,只需要简单地执行docker-compose up -d
即可启动容器。
Compose基于Python开发,需要通过pip安装
curl -s https://bootstrap.pypa.io/get-pip.py | python //安装PIP
pip install docker-compose //安装docker-compose
安装完成后:docker-compose -v
安装vulhub
git clone https://github.com/vulhub/vulhub.git //在联网正常时,使用git下载
或者通过github安装:https://github.com/vulhub/vulhub/archive/master.zip,手动解压vulhub。
搭建环境
启动对应容器
docker-compose会自动查找当前目录下的配置文件(默认文件名为docker-compose.yml
),并根据其内容编译镜像和启动容器。所以,要运行某个漏洞靶场,需要先进入该漏洞所在的目录。
cd flask/ssti
# 可选
docker-compose build
docker-compose up -d
查看进程
docker ps -a
在PORTS中会显示端口映射关系如0.0.0.0:8000->8000/tcp
左边为本地端口,右边为容器的端口
在docker-compose.yml
中也可以查看端口映射关系
查看日志
docker logs [CONTAINER ID]
关闭容器
docker-compose down -v
关于docker的补充
启动一个已经停止的容器
docker start 容器ID或容器名
-t:以 附加进程方式启动
-i:以 交互模式启动
停止一个正在运行的容器
docker stop 容器ID或容器名
docker stop -t=60 容器ID或容器名
参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
docker kill 容器ID或容器名 :直接关闭容器
stop和kill的区别:stop给环境一定时间关闭以保存自身状态,kill直接关闭容器
重启容器
docker restart 容器ID或容器名 :不管容器是否启动,直接重启容器
-t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
清理容器
docker rm [容器ID]
docker rm $(docker ps -aq) //全部清理