Community生產力與協作github.com

manutej/docker-compose-編排

使用 Docker Compose 進行多容器應用程式的容器編排,包括網路、磁碟區與生產環境部署

docker-compose-編排 是什麼?

此技能專注於使用 Docker Compose 進行多容器應用程式的容器編排,涵蓋從開發到生產環境的完整流程。它提供定義和運行多容器 Docker 應用程式的指南,包括服務組態、網路設定、磁碟區掛載以及環境變數管理。該技能支援 Docker Compose 的核心功能,例如 `depends_on`、健康檢查和資源限制,並強調生產就緒的部署模式,包括使用 Traefik 或 Nginx 的反向代理、日誌記錄和監控。它可在任何支援 Docker 的平台上使用,包括本地開發環境、CI/CD 管線和雲端伺服器,使開發人員能夠標準化其容器化工作流程。此技能依賴於 `docker-compose.yml` 和 `Dockerfile` 等檔案,並提供使用 `docker-compose up` 和 `docker-compose down` 等命令進行日常操作的逐步說明,以及用於管理多環境設定的最佳實踐。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/manutej/luxor-claude-marketplace/tree/main/skills/docker-compose-orchestration

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

docker-compose-編排 是做什麼的?

使用 Docker Compose 進行多容器應用程式的容器編排,包括網路、磁碟區與生產環境部署

概觀

此技能提供使用 Docker Compose 管理多容器 Docker 應用程式的全面指南。它涵蓋從基本服務定義到進階生產部署策略的所有內容,確保開發人員可以輕鬆地將工作流程標準化。

主要功能

  • 服務定義:使用 docker-compose.yml 檔案定義多個服務,包括映像檔、連接埠和環境變數。
  • 網路:建立自訂網路以隔離服務,並啟用服務間的 DNS 解析。
  • 磁碟區:管理具名磁碟區和繫結掛載,以實現持久的資料儲存。
  • 生產部署:使用反向代理、健康檢查和日誌記錄,針對生產環境最佳化組態。

支援的平台

此技能與任何支援 Docker 的環境相容,包括:

  • 本地開發機器(Linux、macOS、Windows)
  • CI/CD 管線(GitHub Actions、GitLab CI、Jenkins)
  • 雲端伺服器(AWS EC2、DigitalOcean Droplets、Linode)

使用方式

先決條件

  • 安裝 Docker Engine 20.10 或更新版本
  • 安裝 Docker Compose V2(作為 Docker CLI 插件)

基本用法

  1. 建立一個 docker-compose.yml 檔案:
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    networks:
      - frontend
  db:
    image: postgres:13
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: example
    networks:
      - backend

networks:
  frontend:
  backend:

volumes:
  db-data:
  1. 啟動服務:
docker compose up -d
  1. 停止服務:
docker compose down

進階組態

  • 健康檢查:為服務新增健康檢查以確保正常運作。
  • 資源限制:使用 deploy 區塊設定 CPU 和記憶體限制。
  • 環境變數:使用 .env 檔案管理敏感資料。

最佳實踐

  • 對不同環境(開發、暫存、生產)使用不同的 docker-compose.yml 檔案。
  • 使用具名磁碟區而非繫結掛載以實現更好的可攜性。
  • 為服務間通訊使用自訂網路,並避免使用預設網路。
  • 始終為服務指定確切的映像檔標籤。

疑難排解

  • 連接埠衝突:檢查 docker ps 以確認沒有其他容器使用相同的連接埠。
  • 磁碟區權限:確保 Docker 使用者對繫結掛載目錄具有讀取/寫入權限。
  • DNS 解析問題:驗證服務是否在同一個自訂網路中。

參考資料


此技能由 manutej 提供。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能