很长时间没有用过 Docker 了,之前用 Docker 还是自己学网络安全的时候用 Vulhub 搭建相关的环境。
主要是 Docker-compose 快速部署不得不说对小白来说非常好用,部署只要进入相关的漏洞文件然后执行一句话就可以了。
docker-compose up -d
如果有冲突的端口,则可以进行修改 yml 文件,修改 port 端口即可(左边的为宿主机端口,右端是容器内开放端口)
有的时候有的漏洞并不在 Vulhub 里面,就要自己找 image (镜像) ,比方说我自己之前写的宝塔漏洞的复现。就用这来回顾一下 docker 的基础使用.
Docker 三个概念
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
拉取指定的镜像
docker pull tim2docker/baota2:v1
查看本地镜像
docker image
关键数据有 IMAGE ID ,这将在部署 Image 将会用上.
部署镜像
部署 Image,由于宝塔开放的端口是8888端口, PHPAdmin 开放的是 888 端口,其他的还有 2279 的端口,都要开放.
docker run -d -it -p 8888:888 -p 888:888 -p 2279:2279 <Your Image ID>
# -d 是指容器进入后台运行,部署完成后不会进入容器内的终端.
# -it 可以看作 -i 和 -t 的合体, -t 是指在容器内指定一个伪终端, -i 是允许对容器内的标准输入.
# -p 是指定端口
查看容器运行状态
docker ps
对容器内发送指令
docker exec Your Container ID 指令
比方说以上面的宝塔的命令为例,我想要重启宝塔
docker exec Your Container ID bt restart
也可以用 attach 进入容器
docker attach Your Container ID
然后输入相关指令就可以了
如果想退出容器只需输入以下内容
exit
关闭容器
docker stop Your Container ID
其他指令
- 重启容器
docker restart Your Container ID
- 删除容器
docker rm Your Container ID
- 搜索镜像
docker search Your want
容器转化为镜像
docker commit -m "Description" -a "User Information" <Your Container ID> Name/Repository
# -m 是指定说明信息
# -a 指定用户信息
# Name/Repository 是指目标镜像的用户名和仓库名
利用 Dockerfile 创建 docker 还是没有深度了解,还是有空继续了解吧.