本文首发于Leon的Blog,如需转载请注明原地址并联系作者
docker命令
查看docker服务状态:
- service docker status # 查看状态
- # Active: inactive (dead) # 出现此条即未启动
- service docker start # 启动docker服务
查看当前运行的容器与端口:
- docker ps
查看本地已下载镜像:
- docker images 或者docker image ls
查看当前运行容器实时状态:
- docker stats
使用docker搜索并下载镜像:
- docker search node #以node为例,node处替换为你想搜索的关键词
- #搜索后发现了想要下载的镜像,记住完整镜像名
- docker pull node #以node为例,拉取node镜像到本地,这里node处替换为你想下载的完整镜像名
启动容器:
- docker start 容器名/容器ID
重启容器:
- docker restart 容器名/容器ID
终止容器:
- docker stop 容器名/容器ID
删除容器:
- docker rm 容器名/容器ID
删除镜像:
- docker rmi 镜像名/容器ID
运行镜像且端口映射:
- run 运行 stop停止 -d 后台运行 -p 端口映射
- docker run -p 8500:8080 -d node
- #启动刚刚下载的node镜像,让其在后台运行,将镜像中的node端口8080映射至物理机的8500端口,成功运行后会返回一串容器ID
文件复制:
- docker cp 本机路径 容器ID:容器内路径
- #用法与linux下cp命令大同小异
进入容器:
- docker exec -it 容器名/容器id bash
- #退出时输入exit即可
docker-compose管理vulhub
查看docker compose版本:
- docker-compose version
vulhub自带的镜像的配置文件都已经下好在本地了,默认是根目录下的 vulhub 文件夹里
使用 docker-compose 需要进入到指定漏洞镜像的文件夹,
因为默认情况下该命令docker-compose up会读取当前文件夹下名为 docker-compose.yml 或 docker-compose.yaml 的配置文件。
例如我想启动 flask ssti注入这个漏洞镜像,我需要先cd /vulhub/flask/ssti
然后启动镜像:
- docker-compose up
- docker-compose up -d
- #注意:-d表示以后台运行
docker-compose up表示在前台启动容器,控制台将会同时打印所有容器的输出信息,可以很方便进行调试。当通过Ctrl C停止命令时,所有容器将会停止。如图:
docker-compose up -d表示后台启动
有关该命令的其他参数,可以使用docker-compose up --help查看
停止该漏洞镜像的所有容器:(当然也需要在指定文件夹下执行)
- docker-compose stop
- #停止 Compose 应用相关的所有容器,但不会删除它们。
- #被停止的应用可以很容易地通过 docker-compose restart 命令重新启动。
删除已停止的应用:
- docker-compose rm
- #用于删除已停止的 Compose 应用。
- #它会删除容器和网络,但是不会删除卷和镜像。
重启已停止的应用:
- docker-compose restart
- #如果用户在停止该应用后对其配置或其它进行了变更,那么变更的内容不会反映在重启后的应用中,这时需要重新部署应用使变更生效。
列出当前应用中的各个容器:
- docker-compose ps
- #输出内容包括当前状态、容器运行的命令以及网络端口。
停止并删除当前的应用:
- docker-compose down
- #它会删除容器和网络,但是不会删除卷和镜像。
Ps:建议使用docker-compose down这种方式停止应用
对了还有一点
vulhub里的大部分镜像都是默认的8000或者8080端口,如果不进行修改端口映射就会出现占用的情况
你可以在指定文件夹里的docker-compose.yml进行修改
在 ports 一栏,修改格式为:
使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口
end.