--- name: adminer-deploy description: Deploy Adminer (database management tool) using Docker Compose. Use when user wants to set up Adminer for database administration. tools: Read, Glob, Grep, Bash --- # Adminer Docker 部署 使用 Docker Compose 部署 Adminer 資料庫管理工具。 ## 前置需求 - **目標**: 已安裝 Docker 的伺服器 - **存取**: SSH root 權限 - **目錄**: 服務部署於 `/opt/docker/adminer/` ## 部署步驟 ### Step 1: 建立目錄與配置 ```bash ssh root@ bash -c ' mkdir -p /opt/docker/adminer cat > /opt/docker/adminer/docker-compose.yml << "EOF" services: adminer: image: adminer:latest container_name: adminer restart: always ports: - "8080:8080" EOF ' ``` ### Step 2: 啟動服務 ```bash ssh root@ "cd /opt/docker/adminer && docker compose up -d" ``` ### Step 3: 驗證部署 ```bash ssh root@ "docker ps | grep adminer" ``` **預期輸出**: ``` adminer Up 0.0.0.0:8080->8080/tcp ``` ## 存取資訊 - **網址**: `http://:8080` - **預設連接埠**: 8080 ## 常用指令 ```bash # 查看狀態 ssh root@ "cd /opt/docker/adminer && docker compose ps" # 查看日誌 ssh root@ "cd /opt/docker/adminer && docker compose logs" # 停止服務 ssh root@ "cd /opt/docker/adminer && docker compose down" # 重啟服務 ssh root@ "cd /opt/docker/adminer && docker compose restart" # 更新映像 ssh root@ "cd /opt/docker/adminer && docker compose pull && docker compose up -d" ``` ## 連接資料庫 在 Adminer 登入頁面填寫: - **系統**: MySQL / PostgreSQL / SQLite 等 - **伺服器**: 資料庫容器名稱或 IP - **使用者**: 資料庫使用者名稱 - **密碼**: 資料庫密碼 - **資料庫**: 資料庫名稱 ## 故障排除 ### 連接不上資料庫 確認資料庫容器與 Adminer 在同一個 Docker 網路,或使用容器 IP 位址。 ```bash # 查看容器 IP docker inspect | grep IPAddress ``` ### 連接埠衝突 如果 8080 連接埠被佔用,修改 `docker-compose.yml` 中的連接埠映射: ```yaml ports: - "8081:8080" # 將主機連接埠改為 8081 ```