快轉到主要內容

Docker Compose 常用指令、操作

·
類別 
後端開發 常用指令
標籤 
Docker-Compose
Eason Chiu
作者
Eason Chiu
一個不做筆記就容易忘記的工程師
目錄

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 down

2. 服務管理
#

- 啟動特定服務
#

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 backend

3. 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 postgres

4. 建置與 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 redis

5. 網路和連接
#

- 查看網路列表
#

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-network

6. 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_data

7. 環境變數和配置
#

- 使用特定環境檔案
#

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 -d

8. 服務擴展
#

- 擴展服務實例數量
#

bash
docker-compose up --scale [service]=[number]
bash
# 啟動多個後端實例
docker-compose up --scale backend=3

- 查看服務擴展狀態
#

bash
docker-compose ps

9. 清理和維護
#

- 停止並移除所有 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-orphans

10. 健康檢查和監控
#

- 查看服務健康狀態
#

bash
docker-compose ps
bash
# 查看所有服務的運行狀態和健康檢查結果
docker-compose ps

- 等待服務就緒
#

bash
docker-compose up -d --wait
bash
# 啟動服務並等待所有健康檢查通過
docker-compose up -d --wait

11. 常用組合指令
#

- 重新建置並啟動服務
#

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 top

12. 故障排除
#

- 查看服務配置
#

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 -d

13. 實用範例
#

- 完整的開發環境啟動流程
#

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

相關文章

Docker 常用指令、操作
類別 
後端開發 常用指令
標籤 
Docker
Oracle SQL 常用指令、操作
類別 
後端開發 常用指令
標籤 
Oracle Sql
廣島、宮島 | 二天一夜自由行
類別 
日本旅遊 日常隨記
標籤 
廣島旅遊