OpenClaw Docker 部署指南:Gateway 网关容器化与智能体沙箱详解

在部署 OpenClaw 时,Docker 并不是必须的,但在某些场景下却非常实用。例如你希望获得隔离环境、快速测试流程,或者在没有完整开发环境的服务器上运行 OpenClaw。

OpenClaw-Docker-部署指南:Gateway-网关容器化与智能体沙箱详解.png

家兴网络将介绍 如何使用 Docker 运行 OpenClaw Gateway 网关,以及如何启用智能体沙箱隔离环境


一、Docker 是否适合你?

在开始之前,可以先判断自己是否需要 Docker 版本。

适合使用 Docker 的情况

  • 希望获得一个隔离、可随时删除的 Gateway 环境

  • 在 VPS 或云服务器上部署 OpenClaw

  • 想测试完整的容器化运行流程

不太适合的情况

  • 在本地开发机器上运行

  • 希望获得最快的开发迭代速度

如果只是本地开发,通常直接使用官方安装脚本会更简单。

需要注意的是:

OpenClaw 的 智能体沙箱隔离也会使用 Docker,但即使使用沙箱,也不一定需要把整个 Gateway 放进 Docker 里。


二、运行 Docker 版 OpenClaw 的前提条件

部署前需要准备以下环境:

  • Docker Desktop 或 Docker Engine

  • Docker Compose v2

  • 足够的磁盘空间(用于镜像和日志)


三、Docker 方式部署 OpenClaw(推荐方法)

最简单的方式是使用官方提供的自动化脚本。

在项目根目录执行:

./docker-setup.sh

该脚本会自动完成以下操作:

  1. 构建 OpenClaw Gateway 镜像

  2. 运行首次安装向导

  3. 输出 AI 提供商配置提示

  4. 使用 Docker Compose 启动 Gateway

  5. 自动生成 Gateway Token 并写入 .env

完成后,在浏览器打开:

http://127.0.0.1:18789

然后在 Settings → Token 中粘贴生成的 Token 即可连接控制界面。

如果需要再次获取仪表板地址,可以运行:

docker compose run --rm openclaw-cli dashboard --no-open

默认情况下,OpenClaw 会在主机生成以下目录:

~/.openclaw/
~/.openclaw/workspace

四、手动 Docker 部署流程

如果不使用自动脚本,也可以手动部署。

1 构建镜像

docker build -t openclaw:local -f Dockerfile .

2 运行初始化向导

docker compose run --rm openclaw-cli onboard

3 启动 Gateway

docker compose up -d openclaw-gateway

注意:
必须在 项目仓库根目录执行这些命令。


五、解决 Token 配对问题

如果 Dashboard 出现:

unauthorized

或者:

disconnected (1008): pairing required

可以重新生成设备授权:

docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

六、额外挂载主机目录(可选)

如果需要将主机目录挂载到容器,可以使用环境变量:

OPENCLAW_EXTRA_MOUNTS

示例:

export OPENCLAW_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh

注意事项:

  • Mac 和 Windows 必须在 Docker Desktop 中共享路径

  • 修改后需要重新运行 docker-setup.sh


七、持久化容器 Home 目录

如果希望 /home/node 在容器删除后仍然保留,可以设置 Docker 命名卷:

export OPENCLAW_HOME_VOLUME="openclaw_home"
./docker-setup.sh

该方式可以保留:

  • 浏览器缓存

  • 工具下载文件

  • 用户环境配置

删除卷的方法:

docker volume rm openclaw_home

八、安装额外系统依赖

如果需要在镜像中安装系统包,例如:

  • ffmpeg

  • build-essential

  • git

可以在构建前指定:

export OPENCLAW_DOCKER_APT_PACKAGES="ffmpeg build-essential"
./docker-setup.sh

这些依赖会在镜像构建时安装,即使容器删除也会保留。


九、权限问题解决(EACCES)

Docker 镜像默认使用 **node 用户(UID 1000)**运行。

如果遇到权限错误,可以在 Linux 主机执行:

sudo chown -R 1000:1000 /path/to/openclaw-config
sudo chown -R 1000:1000 /path/to/openclaw-workspace

这样可以避免容器访问文件时出现权限问题。


十、OpenClaw 智能体沙箱隔离

OpenClaw 还支持 智能体工具运行隔离(Sandbox)

启用后:

  • Gateway 仍在主机运行

  • 工具执行在 Docker 容器内完成

隔离方式包括:

模式说明
session每个会话一个容器
agent每个智能体一个容器
shared所有会话共享容器

默认配置:

  • 镜像:openclaw-sandbox:bookworm-slim

  • 网络:默认关闭

  • root 文件系统:只读

  • CPU / 内存限制可配置

示例配置:

agents: {
  defaults: {
    sandbox: {
      mode: "non-main",
      scope: "agent",
      workspaceAccess: "none",
      docker: {
        image: "openclaw-sandbox:bookworm-slim",
        network: "none",
        memory: "1g",
        cpus: 1
      }
    }
  }
}

十一、构建沙箱镜像

可以使用官方脚本快速构建:

scripts/sandbox-setup.sh

如果需要开发工具环境,可以构建通用镜像:

scripts/sandbox-common-setup.sh

该镜像包含常见开发语言工具,例如:

  • Node

  • Go

  • Rust


十二、沙箱浏览器环境

如果智能体需要浏览器能力,可以构建浏览器镜像:

scripts/sandbox-browser-setup.sh

该镜像包含:

  • Chromium

  • CDP 控制接口

  • 可选 noVNC 远程桌面

配置示例:

agents: {
  defaults: {
    sandbox: {
      browser: { enabled: true }
    }
  }
}

十三、容器清理策略

OpenClaw 会自动清理沙箱容器。

默认规则:

参数说明
idleHours空闲多少小时删除
maxAgeDays最大存活天数

默认设置:

  • 24 小时未使用删除

  • 最多保留 7 天


十四、安全注意事项

需要特别注意:

  • 沙箱只隔离 工具执行

  • 主机级工具默认被禁用,例如:

    • browser

    • camera

    • canvas

如果开启浏览器工具,隔离能力会下降,因为浏览器运行在主机上。


总结

使用 Docker 部署 OpenClaw 可以带来很多优势:

  • 环境隔离

  • 快速部署

  • 可重复构建

  • 适合服务器运行

而智能体沙箱则进一步提升了安全性,让工具执行更加可控。

对于开发者来说:

本地开发建议使用普通安装方式,而服务器部署和多智能体环境则更适合 Docker。

作者王家兴头像

王家兴

资深网络营销顾问,8年数字营销经验,曾为多家知名企业提供网站建设、搜索引擎优化、短视频营销、GEO AI营销服务,擅长内容策略规划。