docker-compose安裝和使用
大部分命令都可以執行在一個或多個服務上。如果沒有特別的說明,命令則應用在專案所有的服務上。
執行docker-compose [COMMAND] --help
檢視具體某個命令的使用說明。
基本的使用格式是
docker-compose [options] [COMMAND] [ARGS...]
選項
--verbose
輸出更多除錯資訊。--version
列印版本並退出。-f, --file FILE
使用特定的 compose 模板檔案,預設為docker-compose.yml
。-p, --project-name NAME
指定專案名稱,預設使用目錄名稱。
命令
build
構建或重新構建服務。
服務一旦構建後,將會帶上一個標記名,例如 web_db。
可以隨時在專案目錄下執行docker-compose build
來重新構建服務。
help
獲得一個命令的幫助。
kill
通過傳送SIGKILL
訊號來強制停止服務容器。支援通過引數來指定傳送的訊號,例如
$ docker-compose kill -s SIGINT
logs
檢視服務的輸出。
port
列印繫結的公共埠。
ps
列出所有容器。
pull
拉取服務映象。
rm
刪除停止的服務容器。
run
在一個服務上執行一個命令。
例如:
$ docker-compose run ubuntu ping docker.com
將會啟動一個 ubuntu 服務,執行ping docker.com
命令。
預設情況下,所有關聯的服務將會自動被啟動,除非這些服務已經在執行中。
該命令類似啟動容器後執行指定的命令,相關卷、連結等等都將會按照期望建立。
兩個不同點:
- 給定命令將會覆蓋原有的自動執行命令;
- 不會自動建立埠,以避免衝突。
如果不希望自動啟動關聯的容器,可以使用--no-deps
選項,例如
$ docker-compose run --no-deps web python manage.py shell
將不會啟動 web 容器所關聯的其它容器。
scale
設定同一個服務執行的容器個數。
通過service=num
$ docker-compose scale web=2 worker=3
start
啟動一個已經存在的服務容器。
stop
停止一個已經執行的容器,但不刪除它。通過docker-compose start
可以再次啟動這些容器。
up
構建,(重新)建立,啟動,連結一個服務相關的容器。
連結的服務都將會啟動,除非他們已經執行。
預設情況,docker-compose up
將會整合所有容器的輸出,並且退出時,所有容器將會停止。
如果使用docker-compose up -d
,將會在後臺啟動並執行所有的容器。
預設情況,如果該服務的容器已經存在,docker-compose up
將會停止並嘗試重新建立他們(保持使用volumes-from
掛載的卷),以保證docker-compose.yml
的修改生效。如果你不想容器被停止並重新建立,可以使用docker-compose
up --no-recreate
。如果需要的話,這樣將會啟動已經停止的容器。
環境變數
環境變數可以用來配置 Compose 的行為。
以DOCKER_
開頭的變數和用來配置 Docker 命令列客戶端的使用一樣。如果使用 boot2docker ,$(boot2docker shellinit)
將會設定它們為正確的值。
COMPOSE_PROJECT_NAME
設定通過 Compose 啟動的每一個容器前新增的專案名稱,預設是當前工作目錄的名字。
COMPOSE_FILE
設定要使用的docker-compose.yml
的路徑。預設路徑是當前工作目錄。
DOCKER_HOST
設定 Docker daemon 的地址。預設使用unix:///var/run/docker.sock
,與 Docker 客戶端採用的預設值一致。
DOCKER_TLS_VERIFY
如果設定不為空,則與 Docker daemon 互動通過 TLS 進行。
DOCKER_CERT_PATH
配置 TLS 通訊所需要的驗證(ca.pem
、cert.pem
和key.pem
)檔案的路徑,預設是~/.docker
。