Compose 是一個工具,用來定義與執行多個 container 組成的 Docker Applications。你可以使用 Compose 檔案來組態設定你的應用服務。然後使用單一命令,透過你的組態設定來建立與啟動你的服務。
適用所有 Linux
$> sudo -i
#> curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#> chmod +x /usr/local/bin/docker-compose
#> docker-compose --version
## 啟動容器服務 docker-compose up docker-compose up -d #背景模式 ## 終止/結束容器服務 docker-compose down ## 開啟容器服務 docker-compose start ## 停止容器服務 docker-compose stop ## 檢視容器服務狀透 docker-compose ps ## 進入指定服務的console docker-compose exec <service-name> bash
image
指定容器的映像檔
image: redis image: ubuntu:14.04 image: tutum/influxdb image: example-registry.com:4000/postgresql image: a4bc65fd
build
指定要 re-build 的容器檔案目錄,該目錄底下必須有 Dockerfile。
build: 7.2-fpm-opcache
command
執行特定指令
command: bundle exec thin -p 3000 or command: [bundle, exec, thin, -p, 3000]
links
用於連結另一容器服務,如需要使用到另一容器的mysql服務。可以給出服務名和別名;也可以僅給出服務名,這樣別名將和服務名相同。同 docker run --link。
links: - db - db:mysql - redis
ports
開啟主機端與容器的通訊埠對映
ports: - "3000" - "8000:8000" - "49100:22" - "127.0.0.1:8001:8001"
expose
提供 container 之間的埠訪問,不會暴露給主機使用。同 docker run --expose。
expose: - "3000" - "8000"
volumes
掛載主機端與容器的資料卷對映
volumes: - /var/lib/mysql - cache/:/tmp/cache - ~/configs:/etc/configs/:ro
volumes_from
掛載指定容器服務的資料卷
當需要存取其它容器內的資料卷時,不用再一一重新掛載,而是利用這參數將指定容器的 volumes 都包含進目前容器。
volumes_from: - service_name - service_name:ro - container:container_name - container:container_name:rw