使用Docker Compose 摻在一起做懶人包 | it vendor意思
第一階段的最後一天,來看看這個方便的工具--DockerCompose[1]。DockerCompose是用來組合多個container成為一個完整服務的工具。先前在說明如何連結container[2]時,已經有示範過連結container的基本方法。雖然可行,但要執行非常多指令才能把container串起來。DockerCompose不只可以做到一樣的事,而且它使用YAML描述檔定義container的關係,簡化定義的過程,同時也實現了IaC,讓container的關係可以簽入版本控制。DockerCompose最終結果是啟動container,底層一樣會使用dockerrun指令,因此DockerCompose的設定參數會與dockerrun...
第一階段的最後一天,來看看這個方便的工具--Docker Compose[1]。Docker Compose 是用來組合多個 container 成為一個完整服務的工具。先前在說明如何連結 container[2] 時,已經有示範過連結 container 的基本方法。雖然可行,但要執行非常多指令才能把 container 串起來。Docker Compose 不只可以做到一樣的事,而且它使用 YAML 描述檔定義 container 的關係,簡化定義的過程,同時也實現了 IaC,讓 container 的關係可以簽入版本控制。
Docker Compose 最終結果是啟動 container,底層一樣會使用 docker run 指令,因此 Docker Compose 的設定參數會與 docker run 的選項和參數非常相似,這也是筆者選擇先詳細說明指令後,才開始介紹 Docker Compose 的原因。
以下會拿過去幾天曾看過的範例,改寫成 Docker Compose 格式。讀者可以看看 Docker 與 Docker Compose 之間如何轉換。
單一 container首先小試身手,以 Container 應用[3] 裡提到的 node.js + npm 為例。
docker run -it --rm -v $PWD:/source -w /source node:14-alpineDocker Compose 使用 docker-compose.yml 做為預設載入設定的檔名,首先建立這個檔案,並輸入以下內容:
# 使用 3.8 版的設定檔,通常新版本會有新的功能,並支援新的設定參數 version: "3.8" # 定義 service 的區塊,一個 service 設定可以用來啟動多個 container services: # 定義一個叫 npm 的 service npm: image: node:14-alpine stdin_open: true tty: true working_dir: /s...