容器隔離是 AI Agent 部署中最具影響力的單一安全改進措施。以下說明 Docker 容器為何重要,以及它們如何保護你的 OpenClaw 實例。
沒有容器的問題
直接在伺服器(裸機)上運行 OpenClaw 意味著:
- AI Agent 可以存取機器上的所有內容
- 被入侵的技能可以讀取系統上的任何檔案
- 惡意程式碼可以安裝系統層級的後門
- 一個被入侵的實例可以攻擊同一伺服器上的其他實例
- Agent 會以使用者擁有的任何權限運行
這就像你只需要讓助理進入辦公室,卻把整棟房子的鑰匙都給了他。
容器隔離提供了什麼
檔案系統隔離
每個容器都有自己的檔案系統。OpenClaw 只能看到容器內部的檔案——看不到主機系統,也看不到其他容器。
行程隔離
容器內的行程無法看到或與容器外的行程互動。被入侵的技能無法終止你的資料庫或網頁伺服器。
網路隔離
容器擁有自己的網路命名空間。預設情況下,除非明確連接,否則它們無法與其他容器通訊。
資源限制
Docker 限制每個容器的 CPU、記憶體和磁碟使用量。失控的行程不會導致整個伺服器當機。
使用者命名空間隔離
容器內的 root 使用者對應到主機上的非特權使用者。即使程式碼逃出容器,它也只有最小的權限。
多租戶安全
對於託管多個使用者的平台(如 ClawTank),容器隔離至關重要:
| 風險 | 沒有容器 | 有容器 |
|---|---|---|
| 使用者 A 讀取使用者 B 的資料 | 可能 | 已阻擋 |
| 惡意技能存取主機 | 可能 | 已阻擋 |
| 單一使用者耗盡資源 | 影響全部 | 已隔離 |
| 跨使用者憑證竊取 | 可能 | 已阻擋 |
| 入侵後的橫向移動 | 容易 | 非常困難 |
ClawTank 如何使用容器
每位 ClawTank 使用者都會獲得一個專屬的 Docker 容器,包含:
專屬檔案系統
你的資料、記憶、設定和技能都是隔離的。沒有其他使用者可以存取。
資源保證
CPU 和記憶體按容器分配。一位使用者的高負載不會影響其他人。
網路分段
每個容器都有自己的連接埠。Caddy 反向代理將流量路由到正確的容器。容器之間無法互相通訊。
自動 TLS
Caddy 處理 TLS 終止。使用者與容器之間的所有流量都是加密的。
乾淨狀態
隨時重建你的容器即可獲得全新的環境。你的記憶會被保留(綁定在你的帳號上,而非容器上)。
最佳實踐
不要以 Root 身分運行
設定 OpenClaw 在容器內以非 root 使用者身分運行:
USER openclaw
唯讀檔案系統
將根檔案系統掛載為唯讀,並指定特定的可寫入目錄:
docker run --read-only \
-v openclaw-data:/data \
openclaw/openclaw:latest
限制能力
移除不必要的 Linux 能力(capabilities):
docker run --cap-drop=ALL \
--cap-add=NET_BIND_SERVICE \
openclaw/openclaw:latest
資源限制
設定明確的記憶體和 CPU 限制:
docker run -m 512m --cpus=1 \
openclaw/openclaw:latest
不使用特權模式
永遠不要以特權模式運行 OpenClaw 容器。這樣做會使隔離失去意義。
縱深防禦方法
容器隔離只是安全的其中一層。請搭配以下措施:
- 反向代理 — 不要直接暴露容器連接埠
- 身分驗證 — 所有端點都要求驗證
- 精選技能 — 只安裝經過驗證的技能
- 自動更新 — 保持 OpenClaw 和 Docker 為最新版本
- 監控 — 留意異常活動
開始使用
在 ClawTank 上部署,每位使用者都會獲得隔離的 Docker 容器,配備自動 TLS、資源限制和網路分段。從第一天起就內建安全防護。
