大部分命令都可以運(yùn)行在一個(gè)或多個(gè)服務(wù)上。如果沒(méi)有特別的說(shuō)明,命令則應(yīng)用在項(xiàng)目所有的服務(wù)上。
執(zhí)行 docker-compose [COMMAND] --help
查看具體某個(gè)命令的使用說(shuō)明。
基本的使用格式是
docker-compose [options] [COMMAND] [ARGS...]
--verbose
輸出更多調(diào)試信息。--version
打印版本并退出。-f, --file FILE
使用特定的 compose 模板文件,默認(rèn)為 docker-compose.yml
。-p, --project-name NAME
指定項(xiàng)目名稱(chēng),默認(rèn)使用目錄名稱(chēng)。build
構(gòu)建或重新構(gòu)建服務(wù)。
服務(wù)一旦構(gòu)建后,將會(huì)帶上一個(gè)標(biāo)記名,例如 web_db。
可以隨時(shí)在項(xiàng)目目錄下運(yùn)行 docker-compose build
來(lái)重新構(gòu)建服務(wù)。
help
獲得一個(gè)命令的幫助。
kill
通過(guò)發(fā)送 SIGKILL
信號(hào)來(lái)強(qiáng)制停止服務(wù)容器。支持通過(guò)參數(shù)來(lái)指定發(fā)送的信號(hào),例如
$ docker-compose kill -s SIGINT
logs
查看服務(wù)的輸出。
port
打印綁定的公共端口。
ps
列出所有容器。
pull
拉取服務(wù)鏡像。
rm
刪除停止的服務(wù)容器。
run
在一個(gè)服務(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)的服務(wù)將會(huì)自動(dòng)被啟動(dòng),除非這些服務(wù)已經(jīng)在運(yùn)行中。
該命令類(lèi)似啟動(dòng)容器后運(yùn)行指定的命令,相關(guān)卷、鏈接等等都將會(huì)按照期望創(chuàng)建。
兩個(gè)不同點(diǎn):
如果不希望自動(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)的其它容器。
scale
設(shè)置同一個(gè)服務(wù)運(yùn)行的容器個(gè)數(shù)。
通過(guò) service=num
的參數(shù)來(lái)設(shè)置數(shù)量。例如:
$ docker-compose scale web=2 worker=3
start
啟動(dòng)一個(gè)已經(jīng)存在的服務(wù)容器。
stop
停止一個(gè)已經(jīng)運(yùn)行的容器,但不刪除它。通過(guò) docker-compose start
可以再次啟動(dòng)這些容器。
up
構(gòu)建,(重新)創(chuàng)建,啟動(dòng),鏈接一個(gè)服務(wù)相關(guān)的容器。
鏈接的服務(wù)都將會(huì)啟動(dòng),除非他們已經(jīng)運(yùn)行。
默認(rèn)情況, docker-compose up
將會(huì)整合所有容器的輸出,并且退出時(shí),所有容器將會(huì)停止。
如果使用 docker-compose up -d
,將會(huì)在后臺(tái)啟動(dòng)并運(yùn)行所有的容器。
默認(rèn)情況,如果該服務(wù)的容器已經(jīng)存在, docker-compose up
將會(huì)停止并嘗試重新創(chuàng)建他們(保持使用 volumes-from
掛載的卷),以保證 docker-compose.yml
的修改生效。如果你不想容器被停止并重新創(chuàng)建,可以使用 docker-compose up --no-recreate
。如果需要的話,這樣將會(huì)啟動(dòng)已經(jīng)停止的容器。
環(huán)境變量可以用來(lái)配置 Compose 的行為。
以DOCKER_
開(kāi)頭的變量和用來(lái)配置 Docker 命令行客戶端的使用一樣。如果使用 boot2docker , $(boot2docker shellinit)
將會(huì)設(shè)置它們?yōu)檎_的值。
COMPOSE_PROJECT_NAME
設(shè)置通過(guò) Compose 啟動(dòng)的每一個(gè)容器前添加的項(xiàng)目名稱(chēng),默認(rèn)是當(dāng)前工作目錄的名字。
COMPOSE_FILE
設(shè)置要使用的 docker-compose.yml
的路徑。默認(rèn)路徑是當(dāng)前工作目錄。
DOCKER_HOST
設(shè)置 Docker daemon 的地址。默認(rèn)使用 unix:///var/run/docker.sock
,與 Docker 客戶端采用的默認(rèn)值一致。
DOCKER_TLS_VERIFY
如果設(shè)置不為空,則與 Docker daemon 交互通過(guò) TLS 進(jìn)行。
DOCKER_CERT_PATH
配置 TLS 通信所需要的驗(yàn)證(ca.pem
、cert.pem
和 key.pem
)文件的路徑,默認(rèn)是 ~/.docker
。