Docker Compose 容器佈署

安裝

前往 Docker Compose GitHub Releases 選擇安裝版本。

# 下載選定版本(以下示範 v2.24.5)
curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# 將檔案設定為可執行
chmod +x /usr/local/bin/docker-compose

# 建立符號連結,讓系統能從 /usr/bin/docker-compose 呼叫
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

基本語法結構

version: "3.8"

services: # 容器服務
  servicename: # 服務名稱,內部 bridge 網路中可用作 DNS 名稱
    image: # 鏡像名稱
    command: # (可選)覆蓋鏡像內預設的 CMD 命令
    environment: # (可選)環境變數,等同 docker run 的 --env
    healthcheck: # (可選)用於檢查服務健康狀態
    depends_on: # (可選)定義服務間啟動與關閉的依賴關係
    volumes: # (可選)掛載資料卷,等同 docker run 的 -v
    networks: # (可選)指定使用的網路,等同 docker run 的 --network
    ports: # (可選)端口映射,等同 docker run 的 -p
  servicename2:
    image: your-image
    # 其他設定...

volumes: # (可選)定義資料卷

networks: # (可選)定義自訂網路

操作指令

# 啟動服務(前台執行)
docker-compose up

# 背景執行服務
docker-compose up -d

# 查看所有服務的日誌
docker-compose logs

# 持續監控日誌輸出
docker-compose logs -f

# 停止所有運行中的服務
docker-compose stop

# 重啟所有服務
docker-compose restart

# 查看服務狀態
docker-compose ps

docker-compose 環境變數使用

  1. 建立 .env 檔案,定義變數值。例如:
HOST_HTTP_PORT=80
HOST_HTTPS_PORT=443
  1. docker-compose.yml 中透過 ${} 方式引用:
ports:
  - "${HOST_HTTP_PORT}:80"
  - "${HOST_HTTPS_PORT}:443"
  1. 查看合併後的 compose 配置狀態:
docker-compose config

補充說明

  • docker-compose 版本 2 以後,官方推薦直接使用 docker compose 指令(中間無破折號),但 docker-compose 指令仍可用於舊版與向下相容。
  • 建議使用相對應版本的 Compose 文件版本(如 3.8),符合目前 Docker Engine 支援。
  • healthcheck 可用來設置服務健康狀態的檢查機制,方便自動重啟或依賴管理。
  • depends_on 僅控制啟動順序,無法保證被依賴服務完全健康,必要時應搭配 healthcheck 使用。