1嫌佑、安裝docker-compose
1洛二、下載二進(jìn)制文件
wget https://github.com/docker/compose/releases/download/1.24.0/docker-compose-Linux-x86_64
下載過慢可以直接下載我上傳的資源,起始0幣(CSDN動(dòng)態(tài)調(diào)整)點(diǎn)擊下載
2妹沙、移動(dòng)文件
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
3偶洋、賦予可執(zhí)行權(quán)限
chmod +x /usr/local/bin/docker-compose
4、創(chuàng)建軟鏈
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
5距糖、測試是否安裝成功
docker-compose --version
2玄窝、docker-compose命令介紹
2.1 命令選項(xiàng)
-
-f, --file FILE
指定使用的 Compose 模板文件,默認(rèn)為docker-compose.yml
悍引,可以多次指定恩脂。 -
-p, --project-name NAME
指定項(xiàng)目名稱,默認(rèn)將使用所在目錄名稱作為項(xiàng)目名趣斤。 -
--verbose
輸出更多調(diào)試信息俩块。 -
-v, --version
打印版本并退出。
2.2 命令使用說明
build
格式為 docker-compose build [options] [SERVICE...]
浓领。
構(gòu)建(重新構(gòu)建)項(xiàng)目中的服務(wù)容器玉凯。
服務(wù)容器一旦構(gòu)建后,將會(huì)帶上一個(gè)標(biāo)記名联贩,例如對于 web 項(xiàng)目中的一個(gè) db 容器漫仆,可能是 web_db。
可以隨時(shí)在項(xiàng)目目錄下運(yùn)行 docker-compose build
來重新構(gòu)建服務(wù)泪幌。
選項(xiàng)包括:
-
--force-rm
刪除構(gòu)建過程中的臨時(shí)容器盲厌。 -
--no-cache
構(gòu)建鏡像過程中不使用 cache(這將加長構(gòu)建過程)署照。 -
--pull
始終嘗試通過 pull 來獲取更新版本的鏡像。
config
驗(yàn)證 Compose 文件格式是否正確吗浩,若正確則顯示配置建芙,若格式錯(cuò)誤顯示錯(cuò)誤原因。
down
此命令將會(huì)停止 up
命令所啟動(dòng)的容器拓萌,并移除網(wǎng)絡(luò)
exec
進(jìn)入指定的容器岁钓。
help
獲得一個(gè)命令的幫助。
images
列出 Compose 文件中包含的鏡像微王。
kill
格式為 docker-compose kill [options] [SERVICE...]
屡限。
通過發(fā)送 SIGKILL
信號(hào)來強(qiáng)制停止服務(wù)容器。
支持通過 -s
參數(shù)來指定發(fā)送的信號(hào)炕倘,例如通過如下指令發(fā)送 SIGINT
信號(hào)钧大。
$ docker-compose kill -s SIGINT
logs
格式為 docker-compose logs [options] [SERVICE...]
。
查看服務(wù)容器的輸出罩旋。默認(rèn)情況下啊央,docker-compose 將對不同的服務(wù)輸出使用不同的顏色來區(qū)分≌谴祝可以通過 --no-color
來關(guān)閉顏色瓜饥。
該命令在調(diào)試問題的時(shí)候十分有用。
pause
格式為 docker-compose pause [SERVICE...]
浴骂。
暫停一個(gè)服務(wù)容器乓土。
port
格式為 docker-compose port [options] SERVICE PRIVATE_PORT
。
打印某個(gè)容器端口所映射的公共端口溯警。
選項(xiàng):
-
--protocol=proto
指定端口協(xié)議趣苏,tcp(默認(rèn)值)或者 udp。 -
--index=index
如果同一服務(wù)存在多個(gè)容器梯轻,指定命令對象容器的序號(hào)(默認(rèn)為 1)食磕。
ps
格式為 docker-compose ps [options] [SERVICE...]
。
列出項(xiàng)目中目前的所有容器喳挑。
選項(xiàng):
-
-q
只打印容器的 ID 信息彬伦。
pull
格式為 docker-compose pull [options] [SERVICE...]
。
拉取服務(wù)依賴的鏡像伊诵。
選項(xiàng):
-
--ignore-pull-failures
忽略拉取鏡像過程中的錯(cuò)誤单绑。
push
推送服務(wù)依賴的鏡像到 Docker 鏡像倉庫。
restart
格式為 docker-compose restart [options] [SERVICE...]
日戈。
重啟項(xiàng)目中的服務(wù)。
選項(xiàng):
-
-t, --timeout TIMEOUT
指定重啟前停止容器的超時(shí)(默認(rèn)為 10 秒)孙乖。
rm
格式為 docker-compose rm [options] [SERVICE...]
浙炼。
刪除所有(停止?fàn)顟B(tài)的)服務(wù)容器份氧。推薦先執(zhí)行 docker-compose stop
命令來停止容器。
選項(xiàng):
-
-f, --force
強(qiáng)制直接刪除弯屈,包括非停止?fàn)顟B(tài)的容器蜗帜。一般盡量不要使用該選項(xiàng)。 -
-v
刪除容器所掛載的數(shù)據(jù)卷资厉。
run
格式為 docker-compose run [options] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
厅缺。
在指定服務(wù)上執(zhí)行一個(gè)命令。
例如:
$ docker-compose run ubuntu ping docker.com
將會(huì)啟動(dòng)一個(gè) ubuntu 服務(wù)容器宴偿,并執(zhí)行 ping docker.com
命令湘捎。
默認(rèn)情況下,如果存在關(guān)聯(lián)窄刘,則所有關(guān)聯(lián)的服務(wù)將會(huì)自動(dòng)被啟動(dòng)窥妇,除非這些服務(wù)已經(jīng)在運(yùn)行中。
該命令類似啟動(dòng)容器后運(yùn)行指定的命令娩践,相關(guān)卷活翩、鏈接等等都將會(huì)按照配置自動(dòng)創(chuàng)建。
兩個(gè)不同點(diǎn):
- 給定命令將會(huì)覆蓋原有的自動(dòng)運(yùn)行命令翻伺;
- 不會(huì)自動(dòng)創(chuàng)建端口材泄,以避免沖突。
如果不希望自動(dòng)啟動(dòng)關(guān)聯(lián)的容器吨岭,可以使用 --no-deps
選項(xiàng)拉宗,例如
$ docker-compose run --no-deps web python manage.py shell
將不會(huì)啟動(dòng) web 容器所關(guān)聯(lián)的其它容器。
選項(xiàng):
-
-d
后臺(tái)運(yùn)行容器未妹。 -
--name NAME
為容器指定一個(gè)名字簿废。 -
--entrypoint CMD
覆蓋默認(rèn)的容器啟動(dòng)指令。 -
-e KEY=VAL
設(shè)置環(huán)境變量值络它,可多次使用選項(xiàng)來設(shè)置多個(gè)環(huán)境變量族檬。 -
-u, --user=""
指定運(yùn)行容器的用戶名或者 uid。 -
--no-deps
不自動(dòng)啟動(dòng)關(guān)聯(lián)的服務(wù)容器化戳。 -
--rm
運(yùn)行命令后自動(dòng)刪除容器单料,d
模式下將忽略。 -
-p, --publish=[]
映射容器端口到本地主機(jī)点楼。 -
--service-ports
配置服務(wù)端口并映射到本地主機(jī)扫尖。 -
-T
不分配偽 tty,意味著依賴 tty 的指令將無法運(yùn)行掠廓。
scale
格式為 docker-compose scale [options] [SERVICE=NUM...]
换怖。
設(shè)置指定服務(wù)運(yùn)行的容器個(gè)數(shù)。
通過 service=num
的參數(shù)來設(shè)置數(shù)量蟀瞧。例如:
$ docker-compose scale web=3 db=2
將啟動(dòng) 3 個(gè)容器運(yùn)行 web 服務(wù)沉颂,2 個(gè)容器運(yùn)行 db 服務(wù)条摸。
一般的,當(dāng)指定數(shù)目多于該服務(wù)當(dāng)前實(shí)際運(yùn)行容器铸屉,將新創(chuàng)建并啟動(dòng)容器钉蒲;反之,將停止容器彻坛。
選項(xiàng):
-
-t, --timeout TIMEOUT
停止容器時(shí)候的超時(shí)(默認(rèn)為 10 秒)顷啼。
start
格式為 docker-compose start [SERVICE...]
。
啟動(dòng)已經(jīng)存在的服務(wù)容器昌屉。
stop
格式為 docker-compose stop [options] [SERVICE...]
钙蒙。
停止已經(jīng)處于運(yùn)行狀態(tài)的容器,但不刪除它怠益。通過 docker-compose start
可以再次啟動(dòng)這些容器仪搔。
選項(xiàng):
-
-t, --timeout TIMEOUT
停止容器時(shí)候的超時(shí)(默認(rèn)為 10 秒)。
top
查看各個(gè)服務(wù)容器內(nèi)運(yùn)行的進(jìn)程蜻牢。
unpause
格式為 docker-compose unpause [SERVICE...]
烤咧。
恢復(fù)處于暫停狀態(tài)中的服務(wù)。
up
格式為 docker-compose up [options] [SERVICE...]
抢呆。
該命令十分強(qiáng)大煮嫌,它將嘗試自動(dòng)完成包括構(gòu)建鏡像,(重新)創(chuàng)建服務(wù)抱虐,啟動(dòng)服務(wù)昌阿,并關(guān)聯(lián)服務(wù)相關(guān)容器的一系列操作。
鏈接的服務(wù)都將會(huì)被自動(dòng)啟動(dòng)恳邀,除非已經(jīng)處于運(yùn)行狀態(tài)懦冰。
可以說,大部分時(shí)候都可以直接通過該命令來啟動(dòng)一個(gè)項(xiàng)目谣沸。
默認(rèn)情況刷钢,docker-compose up
啟動(dòng)的容器都在前臺(tái),控制臺(tái)將會(huì)同時(shí)打印所有容器的輸出信息乳附,可以很方便進(jìn)行調(diào)試内地。
當(dāng)通過 Ctrl-C
停止命令時(shí),所有容器將會(huì)停止赋除。
如果使用 docker-compose up -d
阱缓,將會(huì)在后臺(tái)啟動(dòng)并運(yùn)行所有的容器。一般推薦生產(chǎn)環(huán)境下使用該選項(xiàng)举农。
默認(rèn)情況荆针,如果服務(wù)容器已經(jīng)存在,docker-compose up
將會(huì)嘗試停止容器,然后重新創(chuàng)建(保持使用 volumes-from
掛載的卷)航背,以保證新啟動(dòng)的服務(wù)匹配 docker-compose.yml
文件的最新內(nèi)容秸妥。如果用戶不希望容器被停止并重新創(chuàng)建,可以使用 docker-compose up --no-recreate
沃粗。這樣將只會(huì)啟動(dòng)處于停止?fàn)顟B(tài)的容器,而忽略已經(jīng)運(yùn)行的服務(wù)键畴。如果用戶只想重新部署某個(gè)服務(wù)最盅,可以使用 docker-compose up --no-deps -d <SERVICE_NAME>
來重新創(chuàng)建服務(wù)并后臺(tái)停止舊服務(wù),啟動(dòng)新服務(wù)起惕,并不會(huì)影響到其所依賴的服務(wù)涡贱。
選項(xiàng):
-
-d
在后臺(tái)運(yùn)行服務(wù)容器。 -
--no-color
不使用顏色來區(qū)分不同的服務(wù)的控制臺(tái)輸出惹想。 -
--no-deps
不啟動(dòng)服務(wù)所鏈接的容器问词。 -
--force-recreate
強(qiáng)制重新創(chuàng)建容器,不能與--no-recreate
同時(shí)使用嘀粱。 -
--no-recreate
如果容器已經(jīng)存在了激挪,則不重新創(chuàng)建,不能與--force-recreate
同時(shí)使用锋叨。 -
--no-build
不自動(dòng)構(gòu)建缺失的服務(wù)鏡像垄分。 -
-t, --timeout TIMEOUT
停止容器時(shí)候的超時(shí)(默認(rèn)為 10 秒)。
version
格式為 docker-compose version
娃磺。
打印版本信息薄湿。