OpenClaw Linux Docker 部署教學:Debian/Ubuntu 全天候穩定運行完整攻略
本文說明:Linux + Docker 是目前最穩定、最適合生產環境的 OpenClaw 部署方式。Docker 容器化讓 OpenClaw 與系統環境完全隔離,更新時不影響主機,多實例並行管理更靈活。本文以 Debian 12 / Ubuntu 22.04/24.04 為主,涵蓋從 Docker 安裝到 OpenClaw 完整容器化部署的全過程。
為什麼 Linux + Docker 是最佳 OpenClaw 部署方式
對於擁有 Linux 伺服器的用戶,或希望在 VPS(虛擬私人伺服器)上長期運行 OpenClaw 的人來說,Docker 容器化部署具有無可比擬的優勢。與直接在 Ubuntu 上用 systemd 運行相比,Docker 提供了更強的隔離性、更容易的版本管理,以及更完整的日誌和監控能力。
🐳 Docker 容器化的優勢
- 環境隔離:Node.js 版本衝突不再是問題
- 一致性:本地測試和生產環境完全相同
- 快速更新:
docker pull + restart完成更新 - 多實例:同一主機輕鬆跑多個 OpenClaw 實例
- 資源限制:精確控制每個容器的 CPU/RAM
🐧 Linux 的額外優勢
- 低資源佔用:無 GUI 桌面環境,更多資源給 AI
- 超長穩定運行:Linux 伺服器數年不需重啟
- 強大自動化:cron、systemd 高度客製化
- VPS 支援:可部署在 Hetzner、Vultr、DigitalOcean
- 開源生態:與其他開源工具完美整合
📊 各 Linux 發行版 OpenClaw 相容性
步驟一:安裝 Docker(Ubuntu/Debian)
Ubuntu 24.04 / Debian 12 安裝 Docker:
# 更新套件庫
sudo apt-get update
# 安裝必要套件
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 加入 Docker 官方 GPG 金鑰
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 加入 Docker 儲存庫(Ubuntu)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
# 安裝 Docker Engine 和 Compose
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 讓當前使用者可以直接使用 Docker(不需 sudo)
sudo usermod -aG docker $USER
newgrp docker
# 確認安裝成功
docker --version
docker compose version
步驟二:建立 OpenClaw Docker Compose 配置
Docker Compose 讓 OpenClaw 的部署、更新和管理變得非常簡單。建立專屬目錄和配置文件:
建立目錄和 compose 文件:
mkdir -p ~/openclaw && cd ~/openclaw
nano docker-compose.yml
docker-compose.yml 內容:
version: '3.8'
services:
openclaw:
image: node:22-alpine
container_name: openclaw-gateway
restart: unless-stopped
working_dir: /app
volumes:
# 持久化 OpenClaw 的設定和記憶
- ./openclaw-repo:/app
- openclaw-data:/root/.openclaw
environment:
- NODE_ENV=production
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
ports:
- "18789:18789"
command: >
sh -c "
if [ ! -f package.json ]; then
git clone https://github.com/openclaw/openclaw.git . ;
fi &&
npm install -g pnpm &&
pnpm install &&
pnpm run build &&
node openclaw.mjs gateway --port 18789
"
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:18789/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
openclaw-data:
driver: local
建立環境變數文件 .env:
cat > .env <<'EOF'
# 填入你的 API 金鑰
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxx
TELEGRAM_BOT_TOKEN=xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
EOF
# 確保 .env 不被意外提交
echo ".env" >> .gitignore
啟動 OpenClaw 容器
# 啟動服務(背景執行)
docker compose up -d
# 查看啟動日誌
docker compose logs -f openclaw
# 確認容器正常運行
docker compose ps
備用方案:直接在 Linux 上安裝(不用 Docker)
如果你偏好不使用 Docker,OpenClaw 也提供一鍵腳本直接安裝在 Linux 上:
# 一鍵安裝腳本
curl -fsSL https://openclaw.ai/install.sh | bash
# 安裝完成後引導設定
openclaw onboard
# 安裝為 systemd 用戶服務
openclaw gateway install
# 設定開機後自動啟動(不需要登入)
sudo loginctl enable-linger $USER
# 確認服務狀態
systemctl --user status openclaw
openclaw health
Docker vs 直接安裝:如何選擇
選 Docker 如果你:
- • 在 VPS/雲端伺服器部署
- • 需要跑多個 OpenClaw 實例
- • 重視環境隔離和版本管理
- • 有 DevOps 背景
選直接安裝如果你:
- • 在個人電腦/樹莓派上跑
- • 只需要單一實例
- • 不熟悉 Docker
- • 想要更簡單的設定
步驟三:日誌管理與健康監控
生產環境的 OpenClaw 需要完善的日誌管理和健康監控,避免靜默故障(容器看似運行但實際無法回應):
Docker 日誌管理:
# 即時查看日誌
docker compose logs -f --tail=100 openclaw
# 日誌旋轉配置(在 docker-compose.yml 的 logging 段落)
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "5"
# 查看容器資源使用
docker stats openclaw-gateway
# 健康狀態
docker inspect --format='{{.State.Health.Status}}' openclaw-gateway
設定 Telegram 警報(容器崩潰時自動通知):
#!/bin/bash
# 存為 /usr/local/bin/openclaw-monitor.sh
CONTAINER="openclaw-gateway"
BOT_TOKEN="你的 Telegram Bot Token"
CHAT_ID="你的 Chat ID"
STATUS=$(docker inspect --format='{{.State.Status}}' $CONTAINER 2>/dev/null)
if [ "$STATUS" != "running" ]; then
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d "chat_id=$CHAT_ID" \
-d "text=⚠️ OpenClaw 容器異常:狀態=$STATUS,正在重啟..."
docker compose -f ~/openclaw/docker-compose.yml restart openclaw
fi
設定 cron 每 5 分鐘監控(在終端機執行 crontab -e):
# 每 5 分鐘監控一次容器狀態
*/5 * * * * /usr/local/bin/openclaw-monitor.sh
# 每天凌晨 3 點自動更新 OpenClaw
0 3 * * * cd ~/openclaw && git pull && docker compose up -d --build
步驟四:設定自動更新機制
OpenClaw 更新頻繁(GitHub 社群非常活躍),設定自動更新讓你永遠用到最新功能:
使用 Watchtower 自動更新 Docker 容器:
# 在 docker-compose.yml 加入 Watchtower 服務
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_SCHEDULE=0 0 3 * * * # 每天凌晨 3 點檢查更新
- WATCHTOWER_NOTIFICATIONS=telegram
- WATCHTOWER_NOTIFICATION_TELEGRAM_TOKEN=${TELEGRAM_BOT_TOKEN}
- WATCHTOWER_NOTIFICATION_TELEGRAM_CHATS=${TELEGRAM_CHAT_ID}
restart: unless-stopped
手動零停機更新
cd ~/openclaw
# 拉取最新源碼
git pull origin main
# 重建並重啟容器(幾乎零停機)
docker compose up -d --build --no-deps openclaw
# 確認新版本運行正常
docker compose logs --tail=50 openclaw
進階:Linux Docker 多實例 OpenClaw 管理
🔀 為什麼需要多個 OpenClaw 實例?
Docker 的最大優勢之一是可以在同一台 Linux 主機上運行多個 OpenClaw 實例,每個實例對應不同用途:
- • 實例 A:個人工作流程(郵件、行事曆)
- • 實例 B:程式開發助理(GitHub、CI/CD)
- • 實例 C:市場研究助理(網頁爬取、分析)
- • 每個實例獨立的 API 金鑰和 Telegram Bot
多實例 docker-compose.yml 配置範例:
services:
openclaw-personal:
image: node:22-alpine
container_name: openclaw-personal
ports:
- "18789:18789"
volumes:
- ./openclaw-repo:/app
- openclaw-personal-data:/root/.openclaw
environment:
- ANTHROPIC_API_KEY=${PERSONAL_API_KEY}
- TELEGRAM_BOT_TOKEN=${PERSONAL_BOT_TOKEN}
restart: unless-stopped
openclaw-dev:
image: node:22-alpine
container_name: openclaw-dev
ports:
- "18790:18789"
volumes:
- ./openclaw-repo:/app
- openclaw-dev-data:/root/.openclaw
environment:
- ANTHROPIC_API_KEY=${DEV_API_KEY}
- TELEGRAM_BOT_TOKEN=${DEV_BOT_TOKEN}
restart: unless-stopped
volumes:
openclaw-personal-data:
openclaw-dev-data:
Linux OpenClaw 效能優化
(搭配 VPN07)
穩定率
佔用
任務數量
🌐 網路優化:使用 VPN07 提升 API 連線品質
在 Linux 伺服器上使用 VPN07 的幾種方式:
# 方法一:安裝 WireGuard(推薦,效能最好)
sudo apt install wireguard
# 使用 VPN07 提供的 WireGuard 配置文件
# 方法二:使用 VPN07 Linux CLI 客戶端
# 下載並安裝 VPN07 Linux 版本
# 選擇日本或新加坡節點,延遲最低
搭配 VPN07 1000Mbps 千兆節點後,Claude API 回應時間從平均 8 秒降至 1.5 秒
💾 儲存優化
- • 使用 Docker Volume(而非 bind mount)提升 I/O 效能
- • 定期清理舊容器映像:
docker image prune -a - • OpenClaw 記憶資料建議每週備份到雲端
Linux Docker 部署常見問題解決
Q:容器一直重啟,log 說 NODE_MODULE_NOT_FOUND
A:這通常是依賴套件未正確安裝。進入容器手動排查:docker exec -it openclaw-gateway sh,然後執行 pnpm install。
Q:API 呼叫一直超時 (timeout)
A:VPS 所在地區可能無法直連 Anthropic/OpenAI API。安裝 VPN07 並在容器的 Docker 網路中配置 HTTP_PROXY 環境變數,或在主機層安裝 VPN07 WireGuard。
Q:如何讓 OpenClaw 記憶在重啟後保留?
A:確認 ~/.openclaw 目錄已掛載為 Docker Volume(見上方 docker-compose.yml 配置)。所有記憶、設定和技能都存在 Volume 中,容器重建後自動恢復。
Q:VPS 記憶體只有 1GB,夠用嗎?
A:使用 Claude API(雲端模型)時,OpenClaw 容器約佔用 80-150MB RAM,1GB VPS 完全夠用。但如果要在 VPS 上跑本地 Ollama 模型,建議至少 8GB RAM。
Linux 伺服器 OpenClaw 最佳 VPN 方案
VPN07 - Linux OpenClaw 最佳加速方案
運營十年的國際 VPN 品牌,提供 WireGuard 配置文件支援 Linux 原生安裝,1000Mbps 千兆頻寬讓 Linux OpenClaw Docker 容器高速存取 Claude/GPT API,AES-256 加密保護伺服器通訊。
在 Linux 伺服器上部署 OpenClaw,最大的痛點是 AI API 的連線穩定性。VPN07 的 WireGuard 支援讓你在任何 Linux 發行版(Ubuntu、Debian、Fedora、Arch)上都能快速配置穩定的 API 連線隧道。1000Mbps 千兆頻寬確保即使 Docker 容器中的多個 OpenClaw 實例同時工作,也不會出現頻寬瓶頸。