iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
1
Cloud Native

從零開始建立自動化發佈的流水線系列 第 28

28. Docker - Docker Compose

筆者言:先發稿,一樣會在早上前完稿


Eric: 剛剛你提到一次啟動多個 Container 的情境,docker compose 可以解決這個需求。

吉米: 除了啟動多個 container 之外,docker compose 還能做什麼?

Eric: 例如設定 container 之間的關連,快速佈署等等。

吉米: 那還等什麼,我們開始吧。

Eric: 哈哈,沒問題。


1. docker-compose

docker-compose 是一個用來定義與執行多個 container 的輔助工具。

當使用 docker-compose up 這個指令,它會去依循 compose file 內的定義,依序啟動多個 container ,以及建立它們之間的關連。

compose file 預設名稱為 docker-compose.yml

使用 docker-compose ,基本上分為三個步驟

  • 使用 dockerfile 定義應用程式的環境。
  • 使用 docker-compose.yml 內的定義,構成應用程式的服務 (service)。
  • 執行 docker-compose up,啟動並運行整個應用程式。

在 docker-compose 中,以 服務(service) 稱呼使用 compose file 產生出來的物件。

所以執行 docker-compose --help 時,會看到許多指令的說明,都是以 service 稱呼。

1542047152230

2. docker-compose.yml

# docker-compose.yml
version: '3'
services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

從這個範例中,可以看到 **docker-compose.yml 的內容,是以 YAML 格式撰寫。**包含 compose file 格式的版本、服務內的 container 設定,以及執行環境的設制。

2.1

2.2

2.3

3. use cases

4. 小結

關於 compose file 內的指令語法,還有許多未能說明的。真的有需求或興趣,可以直接到 Docker 的文件庫內查看。


吉米: 既然 docker compose 讓佈置變的這麼方便,那接來下,將它與 CI Server 結合在一起吧。

Eric: 這正是我們接下來的要進行的內容。

吉米: 好。

<< 待續 >>


延伸閱讀

  1. Docker Document, Overview of Docker Compose
  2. Docker Document, Compose file version 3 reference
  3. Docker —— 从入门到实践

上一篇
27. Docker - Docker Image
下一篇
29. Docker 與 CI/CD (上)
系列文
從零開始建立自動化發佈的流水線30

尚未有邦友留言

立即登入留言