Docker Compose 是一個用於定義和運行多容器應用的工具,利用 yaml
文件來配置所需要的所有服務,可以同時啟動多個容器並建立容器之間的關聯。
安裝方式依照不同作業系統可以在 Docker 官網 找到相對應的安裝方式,以下以 linux 為例 :
這個範例啟動了兩個 Container,分別為 app1 和 app2,若是一般專案設定可以像範例的 app1 設定即可,其他設定到 CI、CD 再設定會比較好。
version
指定yml使用哪個版本的 compose
build
兩種方式
environment
添加環境變數,若要使用 boolean 需要用單引號括起來,否則 yml 解析器不會解析為 boolean
expose
暴露端口,Container 內部開放存取的 Port 號。expose 用於讓 Container 互相溝通,像是 redis 就有 expose port 6379 來讓 Container 之間互相溝通。
ports
Port 對應,Host Port : Container Expose Port
network_mode
設置網路模式,bridge、host,等。
restart
設置重啟策略,預設是 no
always : 總是重啟
on-failure : container 正常退出時(退出狀態非0)才重啟
secrets
儲存敏感數據,例如密碼
volumes
將主機的文件掛載到 Container
depends_on
設定啟動順序,docker compose 可以一次啟動多個 Container,但是有些 Container 之間是有關連性的就必須有順序性的啟動。
以上列出較常用到指令,其他見參考3
-d : 背景執行
[1] 用 Docker-Compose 啟動多個 Docker Container
[2] Install Docker Compose
[3] Docker Compose | Runoob.com
[4] Understanding “EXPOSE”
Container
Docker