十、Compose命令
于2021年10月9日學習,注意此篇內容是建立在上一篇的案例上的。
一、compose命令
廢話不多說,先來查看一下幫助
docker-compose help
docker-compose [COMMAND] --help
docker-compose help [COMMAND]
對于 Compose 來說,大部分命令的對象既可以是項目本身,也可以指定為項目中的服務或者容器。
如果沒有特別的說明,命令對象將是項目,會對項目中所有的服務生效。
語法
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
:'
[-f=<arg>...]:指定模板文件
[options]:選項
[COMMAND]:命令
[ARGS...]:參數
'
常用選項
-f, --file FILE 指定使用的 Compose 模板文件,默認為 docker-compose.yml,可以多次指定。
-p, --project-name NAME 指定項目名稱,默認將使用所在目錄名稱作為項目名。
--verbose 輸出更多調試信息。
-v, --version 打印版本并退出。
案例
docker-compose -f docker-compose-base.yml -f docker-compose-prod.yml
docker-compose -p web
docker-compose --verbose
docker-compose -v
使用docker-compose命令需要進入項目文件夾中才能使用
二、管理命令
up
自動完成包括構建鏡像,(重新)創建服務,啟動服務,并關聯服務相關容器的一系列操作。
默認情況,docker-compose up 啟動的容器都在前臺,控制臺將會同時打印所有容器的輸出信息,可以很方便進行調試。
通過 Ctrl-C 停止命令時,所有容器將會停止。
如果服務容器已經存在,docker-compose up 將會停止容器,然后重新創建,以保證使用最新 docker-compose.yml 文件內容。
docker-compose up
#只啟動處于停止狀態的容器,忽略已經運行的服務
docker-compose up --no-recreate
#重新創建web服務,不影響web服務依賴的其他服務
docker-compose up --no-deps -d web
:'
-d 在后臺運行服務容器。
--no-color 不使用顏色來區分不同的服務的控制臺輸出。
--no-deps 不啟動服務所鏈接的容器。
--force-recreate 強制重新創建容器,不能與 --no-recreate 同時使用。
--no-recreate 如果容器已經存在了,則不重新創建,不能與 --force-recreate 同時使用。
--no-build 不自動構建缺失的服務鏡像。
-t, --timeout TIMEOUT 停止容器時候的超時(默認為 10 秒)。
'
build
構建或重新構建項目中的服務容器;第一次運行為構建服務容器,第二次運行為重新構建。
服務容器一旦構建后,將會帶上一個標記名,這個標記名就是創建的項目文件夾名;例如 web 項目文件夾中的一個名為db的容器,最后使用docker ps查看容器名為web_db。
語法
docker-compose build [options] [SERVICE...]
案例
docker-compose build
:'
包括的選項有
--force-rm 刪除構建過程中的臨時容器。
--no-cache 構建鏡像過程中不使用 cache(這將加長構建過程)。
--pull 始終嘗試通過 pull 來獲取更新版本的鏡像。
'
start
啟動已經存在的服務容器,服務容器必須存在,也就是說需要先構建容器后才能使用該命令。
docker-compose start web
stop
停止已經處于運行狀態的容器。
docker-compose start web
:'
-t, --timeout TIMEOUT 停止容器時候的超時(默認為 10 秒)。
'
restart
重啟項目中的服務。
#重啟所有服務
docker-compose restart
#只重啟web服務
docker-compose restart web
:'
-t, --timeout TIMEOUT 指定重啟容器超時時間(默認為 10 秒)。
'
pause
暫停一個服務容器。
docker-compose pause web
unpause
恢復處于暫停狀態中的服務。
docker-compose unpause web
kill
通過發送 SIGKILL 信號來強制停止服務容器。
#殺死全部容器
docker-compose kill -s SIGINT
#殺死web服務容器
docker-compose kill -s SIGINT web
rm
刪除所有(停止狀態的)服務容器。
需要先執行 docker-compose stop 命令來停止容器才能使用。
docker-compose rm
docker-compose rm web
:'
-f, --force 強制直接刪除,包括非停止狀態的容器。一般盡量不要使用該選項。
-v 刪除容器所掛載的數據卷。
'
down
此命令將會停止 up 命令所啟動的容器,并移除網絡。
docker-compose down
可以看到compose會創建一個以項目名命名,名為web_default的網絡,以后介紹。
三、常用命令
config
驗證 Compose 文件格式是否正確,若正確則顯示配置,若格式錯誤顯示錯誤原因。
需要在項目文件夾中運行
docker-compose config
run
在指定服務上執行一個命令。
如果存在關聯,則所有關聯的服務將會自動被啟動,除非這些服務已經在運行中。
#啟動ubuntu服務容器ping百度
docker-compose run ubuntu ping www.baidu.com
:'
-d 后臺運行容器。
--name NAME 為容器指定一個名字。
--entrypoint CMD 覆蓋默認的容器啟動指令。
-e KEY=VAL 設置環境變量值,可多次使用選項來設置多個環境變量。
-u, --user="" 指定運行容器的用戶名或者 uid。
--no-deps 不自動啟動關聯的服務容器。
--rm 運行命令后自動刪除容器,d 模式下將忽略。
-p, --publish=[] 映射容器端口到本地主機。
--service-ports 配置服務端口并映射到本地主機。
-T 不分配偽 tty,意味著依賴 tty 的指令將無法運行。
'
exec
進入指定的容器,這里的web是上一篇博文案例中的web服務。
#查看運行的容器
docker-compose ps
#進入web容器
docker-compose exec web sh
#執行ping命令
docker-compose exec web ping www.baidu.com
#當服務有多個容器時,使用--index指定第幾個,默認是第一個
docker-compose exec --index=2 web sh
效果如下
images
列出 Compose 文件中包含的鏡像。
docker-compose images
logs
查看服務容器的日志。默認情況下,docker-compose 將對不同的服務輸出使用不同的顏色來區分。
#查看web服務容器的日志
docker-compose logs web
port
打印某個容器端口所映射的公共端口。
docker-compose port web 5000
:'
其他選項
--protocol=proto 指定端口協議,tcp(默認值)或者 udp。
--index=index 如果同一服務存在多個容器,指定命令對象容器的序號(默認為 1)。
'
注意這是將容器端口映射的宿主機端口打印出來,映射端口需要在docker-compose-base.yml文件中修改
ps
列出項目中目前的所有容器。
docker-compose ps
#只打印容器ID信息
docker-compose ps -q
pull
拉取服務依賴的鏡像。
#拉取全部服務鏡像
docker-compose pull
#只拉取web服務鏡像
docker-compose pull web
:"
--ignore-pull-failures 忽略拉取鏡像過程中的錯誤。
"
push
推送服務依賴的鏡像到 Docker 鏡像倉庫。
#推送全部服務鏡像
docker-compose push
#只推送web服務鏡像
docker-compose push web
scale
設置指定服務運行的容器個數。
當指定數目多于該服務當前實際運行容器,將新創建并啟動容器;反之,將停止容器。
#啟動3個web服務容器,啟動2個db服務容器
docker-compose scale web=3 db=2
:'
-t, --timeout TIMEOUT 停止容器時候的超時(默認為 10 秒)。
'
top
查看各個服務容器內運行的進程。
docker-compose top web
version
打印版本信息。
docker-compose version
四、參考資料
docker入門到實戰
今天的學習是為了以后的工作更加的輕松!
總結
以上是生活随笔為你收集整理的十、Compose命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyramid基本用法
- 下一篇: 咖啡机什么牌子好(咖啡机哪个牌子好)