Docker 环境下 OpenClaw Gateway 无法访问的故障排查指南

Docker 环境下 OpenClaw Gateway 无法访问的故障排查指南运行 docker setup sh 后 通过浏览器访问 http 127 0 0 1 18789 无法打开页面 常见错误信息 Health check failed gateway closed 1006 abnormal closure Gateway target ws 127 0 0 1 18789 Bind loopback 查看所有容器状态

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



运行 docker-setup.sh 后,通过浏览器访问 http://127.0.0.1:18789 无法打开页面。

常见错误信息

Health check failed: gateway closed (1006 abnormal closure) Gateway target: ws://127.0.0.1:18789 Bind: loopback

# 查看所有容器状态 docker compose ps -a

预期输出

NAME COMMAND STATUS openclaw-gateway-1 “node dist/index.js ga…” Up X minutes openclaw-cli-1 “node dist/index.js on…” Exit 0

检查要点

  • openclaw-gateway-1 状态应该是 Up
  • ❌ 如果显示 Exited 或不存在,需要启动容器

docker compose logs openclaw-gateway | tail -50

正常情况应该看到

[gateway] listening on ws://0.0.0.0:18789 (PID 7) [canvas] host mounted at http://0.0.0.0:18789/__openclaw__/canvas/ [browser/service] Browser control service ready

异常情况

  • Bind: loopback - 绑定模式错误
  • Health check failed - 健康检查失败
  • EADDRINUSE - 端口被占用

# 进入 gateway 容器 docker compose exec openclaw-gateway bash

检查主进程

ps aux | head -5

检查 node 进程

ps aux | grep node | grep -v grep

测试内部连接

curl http://127.0.0.1:18789

预期结果

  • PID 1 应该是 node dist/index.js gateway …
  • 有多个 node 进程在运行
  • curl 应该返回 HTML 内容

症状

# 在容器内执行 ps aux | head -5

显示:

node dist/index.js onboard –no-install-daemon

原因:进入的是 openclaw-cli 容器(onboarding),而不是 openclaw-gateway 容器。

解决方法

# 退出当前容器

exit

确认 gateway 容器运行

docker compose ps

进入正确的容器

docker compose exec openclaw-gateway bash


症状

[gateway] Bind: loopback Health check failed: gateway closed

原因:onboarding 期间选择了 loopback 而不是 lan

Docker 环境下必须使用 lan 绑定,因为:

  • loopback (127.0.0.1) 只在容器内部可访问
  • lan (0.0.0.0) 允许通过 Docker 端口映射从宿主机访问

解决方法

方法 1 - 修改配置文件(推荐):

# 在宿主机上执行 sed -i.bak ‘s/“bind”: “loopback”/“bind”: “lan”/g’ ~/.openclaw/openclaw.json

重启容器

docker compose restart openclaw-gateway

方法 2 - 使用 openclaw configure:

docker compose exec openclaw-gateway node dist/index.js configure

症状

docker compose ps

openclaw-gateway-1 状态是 Exit 123

解决方法

# 启动 gateway 容器

docker compose up -d openclaw-gateway

查看启动日志

docker compose logs -f openclaw-gateway


症状

Error: listen EADDRINUSE: address already in use :::18789

解决方法

# 检查宿主机端口占用 lsof -i :18789

如果被其他进程占用,停止该进程或修改端口

export OPENCLAW_GATEWAY_PORT=18788 docker compose up -d openclaw-gateway


docker compose ps openclaw-gateway

状态应该是 “Up”
docker compose logs openclaw-gateway | tail -10

应该看到:

[gateway] listening on ws://0.0.0.0:18789
# 从宿主机测试

curl -v http://127.0.0.1:18789

应该返回 HTML 内容

在容器内测试

docker compose exec openclaw-gateway curl http://127.0.0.1:18789

应该返回 HTML 内容

打开浏览器访问:

  • 不带 token:http://127.0.0.1:18789
  • 带 token:http://127.0.0.1:18789/#token=YOUR_TOKEN

应该看到 OpenClaw 控制界面。


OpenClaw 在 Docker 中运行两个容器:

容器 用途 命令
openclaw-cli 执行命令、onboarding node dist/index.js onboard
openclaw-gateway 运行 gateway 服务 node dist/index.js gateway

两个容器通过 volume 挂载共享配置:

  • 配置目录:/.openclaw/home/node/.openclaw
  • 工作目录:/.openclaw/workspace/home/node/.openclaw/workspace

文件 宿主机路径 容器内路径
配置文件 ~/.openclaw/openclaw.json /home/node/.openclaw/openclaw.json
Docker Compose /path/to/openclaw/docker-compose.yml -
日志文件 - /tmp/openclaw/openclaw-*.log

在 Docker 环境中,onboarding 时应该选择:

  • LAN (0.0.0.0) - 允许从宿主机访问
  • ❌ Loopback (127.0.0.1) - 仅容器内部可访问

docker-compose.yml.env 文件中设置:

OPENCLAW_GATEWAY_BIND=lan

OPENCLAW_GATEWAY_PORT=18789 OPENCLAW_GATEWAY_TOKEN=your-token-here

修改 docker-compose.yml 的端口映射:

ports:

  • “127.0.0.1:18789:18789” # 仅绑定到 localhost,不暴露到公网
    # 查看所有容器状态 docker compose ps -a

查看 gateway 日志

docker compose logs -f openclaw-gateway

重启 gateway

docker compose restart openclaw-gateway

进入 gateway 容器

docker compose exec openclaw-gateway bash

查看 gateway 配置

docker compose exec openclaw-gateway cat /home/node/.openclaw/openclaw.json

健康检查

docker compose exec openclaw-gateway node dist/index.js health –token “YOUR_TOKEN”


  • 官方文档:docs.openclaw.ai/gatewa
  • 故障排查:docs.openclaw.ai/gatewa
  • Gateway 配置:docs.openclaw.ai/gatewa
  • Docker 远程访问:docs.openclaw.ai/gatewa

小讯
上一篇 2026-03-31 14:25
下一篇 2026-03-31 14:23

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/228883.html