Docker Compose 常用指令 #
1. Docker Compose 基本操作 #
- 查看 Docker Compose 版本資訊 #
bash
docker-compose version- 查看 Docker Compose 目前狀態 #
bash
docker-compose ps- 啟動所有服務 #
bash
docker-compose up- 啟動所有服務(背景執行) #
bash
docker-compose up -d- 重啟所有服務 #
bash
docker-compose restart- 停止所有服務 #
bash
docker-compose down2. 服務管理 #
- 啟動特定服務 #
bash
docker-compose up [service name]
bash
# 啟動 PostgreSQL 和 Redis 服務
docker-compose up postgres redis
docker-compose up -d postgres redis- 停止特定服務 #
bash
docker-compose stop [service name]
bash
# 停止後端和前端服務
docker-compose stop backend frontend- 重啟特定服務 #
bash
docker-compose restart [service name]
bash
# 重啟後端服務
docker-compose restart backend- 查看服務日誌 #
bash
docker-compose logs [service name]
bash
# 查看後端和資料庫的日誌
docker-compose logs backend
docker-compose logs postgres- 查看所有服務日誌 #
bash
docker-compose logs- 即時查看服務日誌 #
bash
docker-compose logs -f [service name]
bash
# 即時監控後端服務的日誌輸出
docker-compose logs -f backend3. Container 操作 #
- 進入服務 Container #
bash
docker-compose exec [service name] [command]
bash
# 進入 PostgreSQL Container 執行 psql 指令
docker-compose exec postgres psql -U postgres -d purchasing_agent- 進入 Container 互動模式 #
bash
docker-compose exec -it [service name] /bin/bash
bash
# 進入後端 Container 進行除錯
docker-compose exec -it backend /bin/bash- 查看 Container 狀態 #
bash
docker-compose ps- 查看 Container 詳細資訊 #
bash
docker-compose inspect [service name]
bash
# 查看 PostgreSQL Container 的詳細配置
docker-compose inspect postgres4. 建置與 Image 管理 #
- 建置服務 Image #
bash
docker-compose build [service name]
bash
# 建置後端和前端服務的 Image
docker-compose build backend frontend- 強制重新建置(不使用快取) #
bash
docker-compose build --no-cache [service name]
bash
# 強制重新建置後端服務的 Image
docker-compose build --no-cache backend- 建置所有服務 Image #
bash
docker-compose build- 拉取服務 Image #
bash
docker-compose pull [service name]
bash
# 拉取 PostgreSQL 和 Redis Image
docker-compose pull postgres redis5. 網路和連接 #
- 查看網路列表 #
bash
docker-compose network ls- 查看網路詳細資訊 #
bash
docker-compose network inspect [network name]
bash
# 查看 purchasing-network 的詳細配置
docker-compose network inspect purchasing-network- 建立網路 #
bash
docker-compose network create [network name]
bash
# 建立自定義網路
docker-compose network create my-network6. Volume 管理 #
- 查看 Volume 列表 #
bash
docker-compose volume ls- 查看 Volume 詳細資訊 #
bash
docker-compose volume inspect [volume name]
bash
# 查看 PostgreSQL Volume 的詳細資訊
docker-compose volume inspect purchasing_postgres_data- 建立 Volume #
bash
docker-compose volume create [volume name]
bash
# 建立資料庫和快取的 Volume
docker-compose volume create postgres_data
docker-compose volume create redis_data7. 環境變數和配置 #
- 使用特定環境檔案 #
bash
docker-compose --env-file [file] up
bash
# 使用自定義環境變數檔案啟動服務
docker-compose --env-file .env.production up -d- 設定環境變數 #
bash
docker-compose -e [variable]=[value] up
bash
# 設定自定義環境變數啟動服務
docker-compose -e POSTGRES_PASSWORD=mypassword123 up -d8. 服務擴展 #
- 擴展服務實例數量 #
bash
docker-compose up --scale [service]=[number]
bash
# 啟動多個後端實例
docker-compose up --scale backend=3- 查看服務擴展狀態 #
bash
docker-compose ps9. 清理和維護 #
- 停止並移除所有 Container #
bash
docker-compose down- 停止並移除 Container、網路、Image #
bash
docker-compose down --rmi all- 停止並移除 Container、網路、Image、Volume #
bash
docker-compose down --rmi all --volumes- 清理未使用的資源 #
bash
docker-compose down --remove-orphans10. 健康檢查和監控 #
- 查看服務健康狀態 #
bash
docker-compose ps
bash
# 查看所有服務的運行狀態和健康檢查結果
docker-compose ps- 等待服務就緒 #
bash
docker-compose up -d --wait
bash
# 啟動服務並等待所有健康檢查通過
docker-compose up -d --wait11. 常用組合指令 #
- 重新建置並啟動服務 #
bash
docker-compose up --build -d
bash
# 重新建置 Image 並在背景啟動所有服務
docker-compose up --build -d- 重新啟動特定服務 #
bash
docker-compose restart [service name]
bash
# 重新啟動後端服務
docker-compose restart backend- 查看服務資源使用情況 #
bash
docker-compose top
bash
# 查看所有服務的資源使用統計
docker-compose top12. 故障排除 #
- 查看服務配置 #
bash
docker-compose config
bash
# 驗證 docker-compose.yml 配置檔案的正確性
docker-compose config- 查看服務依賴關係 #
bash
docker-compose config --services
bash
# 列出所有服務名稱
docker-compose config --services- 強制重新建立 Container #
bash
docker-compose up --force-recreate
bash
# 強制重新建立所有 Container
docker-compose up --force-recreate -d13. 實用範例 #
- 完整的開發環境啟動流程 #
bash
# 1. 建置所有服務 Image
docker-compose build
# 2. 啟動所有服務(背景執行)
docker-compose up -d
# 3. 查看服務狀態
docker-compose ps
# 4. 查看服務日誌
docker-compose logs -f- 資料庫管理操作 #
bash
# 進入 PostgreSQL Container
docker-compose exec postgres psql -U postgres -d purchasing_agent
# 備份資料庫
docker-compose exec postgres pg_dump -U postgres purchasing_agent > backup.sql
# 還原資料庫
docker-compose exec -T postgres psql -U postgres -d purchasing_agent < backup.sql- 應用程式除錯 #
bash
# 查看後端服務日誌
docker-compose logs -f backend
# 進入後端 Container 除錯
docker-compose exec -it backend /bin/bash
# 重新啟動後端服務
docker-compose restart backend- 環境變數管理 #
bash
# 建立環境變數檔案
cat > .env << EOF
POSTGRES_PASSWORD=secure_password_123
REDIS_PASSWORD=redis_secure_456
JWT_SECRET=my_jwt_secret_key_789
PGADMIN_PASSWORD=admin_secure_123
EOF
# 使用環境變數啟動服務
docker-compose --env-file .env up -d