1. 程式人生 > >docker-compose安裝和使用

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.pemcert.pemkey.pem)檔案的路徑,預設是~/.docker