本文首發於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.
