Skip to main content

Mac上用Docker Compose配置OpenClaw备忘录

·511 words·3 mins
Doug Yang
Author
Doug Yang
Gua ~
Table of Contents

作者:爪爪 & 小瓜虾


前言
#

在 Mac 上跑 OpenClaw 有两种方式:直接安装 vs Docker Compose。作为一个经常记不住流程的爪爪,我决定写一篇备忘录,以后忘了就直接来看这篇文章。


方式一:快速脚本(推荐新手)
#

如果你懒得折腾,直接跑官方脚本:

# 克隆仓库
git clone https://github.com/openclaw/openclaw.git
cd openclaw

# 运行安装脚本
./docker-setup.sh

脚本会自动:

  1. 构建 Docker 镜像
  2. 引导你完成配置(API Key、频道等)
  3. 生成 token 写入 .env

安装完成后打开 http://127.0.0.1:18789/,粘贴 token 即可。


方式二:手动 Docker Compose(适合想折腾的)
#

1. 先看目录结构
#

克隆仓库后,主要文件有:

openclaw/
├── docker-compose.yml        # 主配置文件
├── docker-compose.extra.yml  # 自动生成的额外配置(不要手动编辑)
├── Dockerfile               # 镜像构建文件
├── .env                      # 环境变量(包含 token)
└── scripts/
    └── docker-setup.sh       # 安装脚本

2. 手动启动流程
#

# 构建镜像
docker build -t openclaw:local -f Dockerfile .

# 引导配置
docker compose run --rm openclaw-cli onboard

# 启动网关
docker compose up -d openclaw-gateway

# 查看日志
docker compose logs -f openclaw-gateway

3. 常用命令速查
#

操作命令
启动docker compose up -d openclaw-gateway
停止docker compose down
查看日志docker compose logs -f openclaw-gateway
重启docker compose restart openclaw-gateway
进入 Shelldocker compose exec openclaw-gateway sh
进入 CLIdocker compose run --rm openclaw-cli <命令>
查看状态docker compose ps
健康检查curl -fsS http://127.0.0.1:18789/healthz

4. 常用命令详解
#

docker compose down
#

停止并移除所有容器、网络,但保留数据卷(配置不会丢失):

docker compose down

如果要同时删除数据卷(慎用!会丢失所有持久化数据):

docker compose down -v

docker compose logs -f openclaw-gateway
#

实时查看网关日志,调试问题必备:

docker compose logs -f openclaw-gateway

Ctrl+C 退出日志。

进入容器 Shell
#

有时候需要手动操作容器内部:

docker compose exec openclaw-gateway sh

退出 Shell:exitCtrl+D

通过命令行向 OpenClaw 发消息
#

不想开 Dashboard?直接用 CLI 发消息:

docker compose exec openclaw-gateway openclaw agent --agent main -m "hello"

其中 main 是 Agent 名称,-m 后面跟你要发送的消息内容。

5. 获取 Dashboard Token
#

如果 token 找不到了:

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

配置文件详解
#

docker-compose.yml 核心部分
#

services:
  openclaw-gateway:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "18789:18789"      # 网关端口
    volumes:
      - ~/.openclaw/:/home/node/.openclaw    # 配置持久化
      - ~/.openclaw/workspace:/home/node/.openclaw/workspace  # 工作目录
    environment:
      - OPENCLAW_GATEWAY_BIND=lan   # 允许宿主机访问
      - OPENCLAW_GATEWAY_TOKEN=xxx   # token(.env 里找)
    restart: unless-stopped

  openclaw-cli:
    image: openclaw:local
    network_mode: "service:openclaw-gateway"  # 和网关共享网络
    volumes:
      - ~/.openclaw/:/home/node/.openclaw
      - ~/.openclaw/workspace:/home/node/.openclaw/workspace

关键环境变量
#

变量作用默认值
OPENCLAW_IMAGE使用远程镜像而非本地构建openclaw:local
OPENCLAW_GATEWAY_BIND绑定模式:lan=宿主机可访问lan
OPENCLAW_HOME_VOLUME用命名卷持久化 /home/node-
OPENCLAW_EXTRA_MOUNTS额外的宿主机目录挂载-
OPENCLAW_SANDBOX开启 Agent 沙箱0
OPENCLAW_DOCKER_SOCKETDocker socket 路径/var/run/docker.sock

持久化配置(重要!)
#

OpenClaw 的配置和数据在 ~/.openclaw/,Docker 通过绑定挂载保持持久化:

~/.openclaw/                    # 配置目录(Mac 上)
    └── /home/node/.openclaw/  # 容器内

会持久化的:

  • openclaw.json 配置文件
  • 模型认证信息(API Key、OAuth Token)
  • Skills 配置
  • 工作区文件
  • WhatsApp 登录 Session

不会持久化的(容器内):

  • Node 运行时
  • OS 包
  • 容器本身

常见坑 & 解决方案
#

1. 权限错误 (EACCES)
#

# 如果遇到 ~/.openclaw 权限问题
sudo chown -R 1000:1000 ~/.openclaw

2. “pairing required” 错误
#

# 重置网关模式为本地
docker compose run --rm openclaw-cli config set gateway.mode local
docker compose run --rm openclaw-cli config set gateway.bind lan

# 重新获取设备列表
docker compose run --rm openclaw-cli devices list --url ws://127.0.0.1:18789

3. 内存不够导致构建失败
#

构建时如果报 exit 137,说明内存不足。确保 Docker Desktop 分配至少 4GB 内存。

4. 端口被占用
#

18789 端口被占用?改一下:

ports:
  - "18790:18789"  # 映射到宿主机 18790

更新 OpenClaw
#

git pull                    # 拉取新版本
docker compose build        # 重新构建镜像
docker compose up -d        # 重启服务

Shell 助手(可选)
#

官方有个 clawdock 辅助工具,可以简化日常操作:

# 安装
mkdir -p ~/.clawdock
curl -sL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/shell-helpers/clawdock-helpers.sh -o ~/.clawdock/clawdock-helpers.sh

# 添加到 zsh
echo 'source ~/.clawdock/clawdock-helpers.sh' >> ~/.zshrc
source ~/.zshrc

# 常用命令
clawdock-start    # 启动
clawdock-stop    # 停止
clawdock-logs    # 看日志
clawdock-help    # 帮助

一句话总结
#

# 第一次安装
git clone https://github.com/openclaw/openclaw.git && cd openclaw && ./docker-setup.sh

# 以后更新
git pull && docker compose build && docker compose up -d

参考文档: OpenClaw Docker 安装指南


有问题?找小瓜虾!👻