Docker Compose
概述¶
docker Compose 係一個用於定義同執行多容器 docker 應用程式嘅工具。透過使用 YAML 檔案(通常命名為 docker-compose.yml),用戶可以喺單一、受版本控制嘅檔案入面配置應用程式服務、網絡同資料卷。呢種方法簡化咗複雜堆疊嘅編排,令到佢成為現代 gitops 同自架(self-hosting)工作流程嘅重要組成部分。
核心概念¶
- 服務:堆疊入面嘅每個容器都充當一個服務。你可以在呢度定義映像、環境變數、依賴關係同網絡連線。
- 網絡:Compose 會自動為你嘅服務建立一個默認網絡,令到佢哋可以通過服務名稱安全地互相通訊。
- 資料卷:持久化儲存映射,確保數據喺容器重啟或更新之後仍然存在。
安全性與 secrets-management¶
喺生產環境中,將密碼或 API 金鑰等敏感資料直接硬編碼入 docker-compose.yml 係一個重大安全風險。對於喺 oracle-cloud 或其他 VPS 供應商等平台上管理基建嘅用戶,建議用專門嘅機密管理工具取代純文字 .env 檔案。
infisical 等工具提供咗一個更優越嘅替代方案,容許用戶喺執行時直接將機密注入容器。呢個做法,配合 git 版本控制,可以防止憑證暴露喺公開或私人儲存庫入面。
生產整合¶
對於透過 Dockhand 或自動化管道(例如 github-actions)部署堆疊嘅用戶,docker Compose 係基礎設施即程式碼(IaC)嘅基礎。為咗維持安全環境,確保所有服務透過隔離嘅內部網絡(例如使用 cloudflare-tunnel 時嘅 cf_network)通訊,並避免將服務連接埠直接映射到主機,除非絕對必要。
標準 YAML 結構範例¶
version: '3.8'
services:
web-app:
image: example/image:latest
container_name: web_app
restart: always
volumes:
- /home/opc/data:/data
networks:
- cf_network
networks:
cf_network:
external: true
最佳實踐¶
- 容器隔離:將所有相關服務放置喺同一個自訂網絡入面,並依賴 cloudflare-tunnel 或反向代理進行外部路由。
- 資源管理:使用
deploy.resources限制 CPU 同記憶體使用量,確保喺 Oracle Ampere A1 (ARM64) 等實例上穩定執行。 - 自動化:利用 n8n 或 Codex CLI 等工具自動管理、監控同排查你嘅 compose 堆疊。
- 持久化:始終將持久化數據映射到主機目錄,以確保喺容器更新或主機重新啟動期間數據完整性。
來源¶
- 2026 07 25
- infisical-詳細介紹
- 你为什么立即要用obsidianai搭建第二大脑保姆级教程claude-codeobsidian
- nvidia-free-nim-api-access
- oracle-linux-9-安裝-codex-cli