Docker安装部署Openclaw
参考文档(官方):Docker - OpenClaw
为什么想要用Docker安装部署Openclaw小龙虾呢?
隔离可丢弃的网关环境
方便迁移
单纯不想在本地宿主机上安装
前置要求
Docker Desktop(或 Docker Engine)+ Docker Compose v2
至少 2 GB RAM 用于镜像构建(在 1 GB 主机上,pnpm install 可能因 OOM 被终止并以 137 退出)
足够的磁盘空间用于镜像和日志
如果在 VPS/公网主机上运行,请查看 网络暴露的安全加固, 尤其是 Docker DOCKER-USER 防火墙策略
我在一个路径下专门安装docker应用,路径为/home/ahui/docker-apps/ ;本文主要完成了一个非常规范的、基于非 root 环境和自定义目录的 Docker 生产级部署,这种部署方式非常安全,且后续备份 /home/ahui/docker-apps/openclaw/data 文件夹就能迁移所有配置。
一、容器化网关
1.1 下载仓库源码
# 进入容器应用目录
cd /home/ahui/docker-apps/
# git源码
git clone https://github.com/openclaw/openclaw.git
# 下载完以后就会出现文件夹/home/ahui/docker-apps/openclaw/切换进去这个目录下
cd /home/ahui/docker-apps/openclaw/
# 后续openclaw容器应用的卷基本上也就放这,防止污染环境1.2 准备配置文件
openclaw官方会提供一个示例环境文件,先复制一份出来修改
# 复制环境配置文件
cp .env.example .env使用Vim或nano修改.env文件,加入以下内容
# -----------------------------------------------------------------------------
# Gateway auth + paths (已适配你的 ahui 路径)
# -----------------------------------------------------------------------------
# 1. 生成 Token (手动执行 openssl rand -hex 32 填入)
OPENCLAW_GATEWAY_TOKEN=你的随机字符串
# 2. 定义宿主机物理路径 (注意:这里是给 Compose 读的,用宿主机路径)
# 这样 YAML 里的 ${OPENCLAW_CONFIG_DIR} 就会指向这里
OPENCLAW_CONFIG_DIR=/home/ahui/docker-apps/openclaw/data
OPENCLAW_WORKSPACE_DIR=/home/ahui/docker-apps/openclaw/workspace
# 3. 设置时区
OPENCLAW_TZ=Asia/Shanghai
# 4. 如果你想通过沙箱运行代码,需要获取 Docker GID
# 执行命令: stat -c '%g' /var/run/docker.sock
DOCKER_GID=刚才命令返回的数字(通常是999或998)1.3 调整docker-compose.yml
官方的 YAML 文件为了通用性,默认是以 root 逻辑或者极其保守的权限运行的。为了适配我们自己的普通ahui用户,对 openclaw-gateway 服务做以下微调:
指定运行用户:防止容器以 root 创建文件,导致你在宿主机打不开。
开启 Docker 控制权(如果你需要 OpenClaw 运行代码沙箱)。
# 片段示例
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE:-openclaw:local}
build: .
user: "1000:1000" # <--- [新增] 强制使用 node 用户运行
env_file:
- path: .env
required: false
# ... environment 部分保持不动 ...
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
# --- [取消下面两行的注释] ---
- /var/run/docker.sock:/var/run/docker.sock
group_add:
- "${DOCKER_GID}" # <--- [取消这两行注释]
# ... 其余保持不动 ...
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${OPENCLAW_GATEWAY_BIND:-lan}",
"--port",
"18789",
"--allow-unconfigured", # <--- 添加这一行,注意前面的逗号
]1.4 权限预处理
在你执行 docker compose up 之前,务必在宿主机执行以下命令,否则容器启动后会因为无法创建 openclaw.json 而崩溃:
cd /home/ahui/docker-apps/openclaw
# 1.创建目录
mkdir -p data workspace
# 2.授予容器内用户(UID 1000)权限
sudo chown -R 1000:1000 data workspace
# 3.确认你的 ahui 用户在 docker 组(如果没操作过请执行)
sudo usermod -aG docker $USER && newgrp docker1.5 构建并运行
docker compose build
docker compose up -d
#成功运行后,检查容器状态,首先确认两个服务(Gateway 和 CLI)是否都在正常运行
#如果 STATUS 显示为 Up 或 Up (healthy),说明程序已经成功启动。
docker compose ps1.6 访问Web界面
在浏览器中输入:http://localhost:18789
登录方式:使用在 .env 中设置的 OPENCLAW_GATEWAY_TOKEN 进行身份验证
首次配置:进入界面后,你可以在设置中配置 OpenAI、Anthropic 或 Gemini 的 API Key
到这里基本上都配置完成了,已经可以正常工作了,其他碰到什么就去AI问就ok
Docker安装部署Openclaw
https://blog.xuehui.chat/archives/dockeran-zhuang-bu-shu-openclaw