106 lines
2.2 KiB
Markdown
106 lines
2.2 KiB
Markdown
---
|
||
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@<SERVER_IP> 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@<SERVER_IP> "cd /opt/docker/adminer && docker compose up -d"
|
||
```
|
||
|
||
### Step 3: 驗證部署
|
||
|
||
```bash
|
||
ssh root@<SERVER_IP> "docker ps | grep adminer"
|
||
```
|
||
|
||
**預期輸出**:
|
||
```
|
||
adminer Up 0.0.0.0:8080->8080/tcp
|
||
```
|
||
|
||
## 存取資訊
|
||
|
||
- **網址**: `http://<SERVER_IP>:8080`
|
||
- **預設連接埠**: 8080
|
||
|
||
## 常用指令
|
||
|
||
```bash
|
||
# 查看狀態
|
||
ssh root@<SERVER_IP> "cd /opt/docker/adminer && docker compose ps"
|
||
|
||
# 查看日誌
|
||
ssh root@<SERVER_IP> "cd /opt/docker/adminer && docker compose logs"
|
||
|
||
# 停止服務
|
||
ssh root@<SERVER_IP> "cd /opt/docker/adminer && docker compose down"
|
||
|
||
# 重啟服務
|
||
ssh root@<SERVER_IP> "cd /opt/docker/adminer && docker compose restart"
|
||
|
||
# 更新映像
|
||
ssh root@<SERVER_IP> "cd /opt/docker/adminer && docker compose pull && docker compose up -d"
|
||
```
|
||
|
||
## 連接資料庫
|
||
|
||
在 Adminer 登入頁面填寫:
|
||
|
||
- **系統**: MySQL / PostgreSQL / SQLite 等
|
||
- **伺服器**: 資料庫容器名稱或 IP
|
||
- **使用者**: 資料庫使用者名稱
|
||
- **密碼**: 資料庫密碼
|
||
- **資料庫**: 資料庫名稱
|
||
|
||
## 故障排除
|
||
|
||
### 連接不上資料庫
|
||
|
||
確認資料庫容器與 Adminer 在同一個 Docker 網路,或使用容器 IP 位址。
|
||
|
||
```bash
|
||
# 查看容器 IP
|
||
docker inspect <container_name> | grep IPAddress
|
||
```
|
||
|
||
### 連接埠衝突
|
||
|
||
如果 8080 連接埠被佔用,修改 `docker-compose.yml` 中的連接埠映射:
|
||
|
||
```yaml
|
||
ports:
|
||
- "8081:8080" # 將主機連接埠改為 8081
|
||
```
|