1.1 Docker Compose 的基本概念
Docker Compose 是一個用於定義和啟動多容器 Docker 應用程式的工具。通過它,你可以輕鬆描述應用程式的架構。這是通過一個名為 compose.yml
的文字檔案來完成的,這個檔案需要遵循特定的規則。該檔案可以描述所有的容器,它們之間的關聯、網路及通用的設定。這樣一來,你就可以啟動一個多容器應用程式並管理它的所有組件。
Docker Compose 的基本概念
- 定義服務: Docker Compose 允許在一個設定檔中定義應用程式的所有組件(例如,網頁伺服器、資料庫、快取和其他服務)。
- 多容器應用程式: Compose 簡化了由多個容器組成的應用程式的啟動和協調。
- 流程自動化: 使用 Compose,你可以自動化所有應用程式容器的部署、管理和擴展。
為什麼需要 Docker Compose?
- 簡化複雜應用程式的管理: 現代應用程式通常使用多個服務運行於不同的容器中。Docker Compose 簡化了這些服務的管理。
- 環境的一致性: Docker Compose 能夠為開發、測試和生產環境提供一致的設定,減少因為設定差異而引起的錯誤。
- 加速開發: 使用 Compose,可以用一條指令啟動和停止所有需要的服務,從而加速開發和測試過程。
- 可擴展性: Docker Compose 讓你能夠輕鬆擴展服務,根據需要增加容器的實例數量。
重要!
早些時候,Docker Compose 是一個獨立的應用程式,所有的指令都以「docker-compose …」開頭。然而,從 Docker 20 版本開始,Compose 已被整合,現在指令以「docker compose …」開頭。
所以,有時候你會在網路上看到使用舊「docker-compose」寫法的例子,有時則是新「docker compose」的寫法。別擔心,這兩種版本都能正常工作。
此外,請注意現在的設定檔名稱可以是 docker-compose.yaml
或 compose.yaml
。這兩種版本都被支持且功能一致,但新版本 Docker Compose 更常使用 compose.yaml
。
1.3 Docker Compose 的基本指令
1. 啟動應用程式
這個指令會讀取 compose.yaml
(或 docker-compose.yml
) 檔案,創建並啟動其中定義的所有服務。
docker compose up
2. 停止應用程式
這個指令停止並移除所有由 docker compose up
創建的容器、網路和卷。
docker compose down
3. 查看日誌
這個指令會輸出所有服務的日誌,方便你輕鬆調試應用程式。
docker compose logs
4. 重新啟動服務
這個指令重新啟動所有或指定的服務,在修改程式碼或配置時非常有用。
docker compose restart
1.4 Docker Compose 的應用
使用 Docker Compose 的優勢
- 部署簡單:使用 Docker Compose 只需一條指令即可部署複雜的應用程式。
- 支持依賴管理:Compose 會自動管理服務之間的依賴關係,確保它們按照正確的順序啟動。
- 服務隔離:每個服務運行在自己的 container 中,這保證了隔離性,並減少服務之間的衝突風險。
- 靈活性:Docker Compose 支援針對開發、測試和生產的不同設定,簡化了環境管理。
Docker Compose 的應用
Docker Compose 廣泛用於:
- 開發:簡化建立一致的開發環境,並能輕鬆與開發團隊共享。
- 測試:能快速建立與生產環境相同的測試環境。
- 生產:簡化多 container 應用程式在生產環境中的部署和管理。
GO TO FULL VERSION