OpenClaw Docker部署避坑指南:服务启动成功但网页打不开?

最近尝试在 Windows 上使用 Docker 部署 OpenClaw,本以为是一路绿灯,结果却在最后一步卡住了------明明容器日志显示"一切正常",浏览器却始终无法访问。经过一番折腾,终于找到了症结所在。如果你也遇到了同样的问题,希望这篇博客能帮你省下排查的时间。

现象:一切看起来都很完美

按照官方文档,我使用以下命令启动了容器:

bash 复制代码
docker run -d `
  --name openclaw `
  --restart always `
  -p 18789:18789 `
  -v D:\OpenClaw\config:/app/config `
  openclaw:latest

容器成功启动,查看日志,一切看起来都很完美:

gateway\] listening on ws://127.0.0.1:18789, ws://\[::1\]:18789 (PID 14) \[heartbeat\] started \[health-monitor\] started

端口映射也确认无误:

bash 复制代码
docker port openclaw
18789/tcp -> 0.0.0.0:18789
18789/tcp -> [::]:18789

然而,当我信心满满地在浏览器中打开 http://127.0.0.1:18789 时,迎接我的却是无尽的"无法访问此网站"。

诊断:被忽略的关键日志

问题出在哪里?我反复检查了防火墙、端口占用,甚至重装了 Docker Desktop,都无济于事。直到我再次仔细观察日志,才发现了一个被忽略的关键信息:

[gateway] listening on ws://127.0.0.1:18789

这里的 127.0.0.1 指的是容器内部的本地回环地址。这意味着 OpenClaw 的网关服务只接受来自容器"自己"的连接,而拒绝了来自外部(也就是你的 Windows 宿主机)的请求。

尽管 Docker 的端口映射(-p 18789:18789)已经把"大门"打开了,但门后的服务却只允许"自己人"通过,导致外部的请求被拒之门外。

解决方案:让服务监听所有接口

问题的根源找到了,解决起来就非常简单了。我们需要修改 OpenClaw 的配置,让它从监听 127.0.0.1 改为监听所有网络接口(0.0.0.0)。

OpenClaw 提供了一个便捷的命令来完成这个操作:

  1. 修改配置

    在 PowerShell 中执行以下命令,告诉网关绑定到局域网(LAN):

    bash 复制代码
    docker exec openclaw openclaw config set gateway.bind lan
  2. 重启服务

    让新的配置生效:

    bash 复制代码
    docker restart openclaw
  3. 验证访问

    等待十几秒让服务重启完成,然后再次刷新浏览器 http://127.0.0.1:18789。此时,你应该就能看到 OpenClaw 的登录界面了。

总结

这次踩坑经历提醒我们,在 Docker 部署中,端口映射成功 并不等于服务可以被外部访问 。当遇到类似问题时,不妨多留意一下服务启动日志中的 listening on 信息,确认它监听的是 127.0.0.1 还是 0.0.0.0,这往往是解决问题的关键线索。

相关推荐
曹牧2 小时前
自动编程AI落地方案‌
人工智能
天云数据2 小时前
Harness革命:企业级AI从“失控野马”到“价值引擎”的跃迁
人工智能
汽车仪器仪表相关领域2 小时前
NHVOC-70系列固定污染源挥发性有机物监测系统:精准破局工业VOCs监测痛点,赋能环保合规升级
大数据·人工智能·安全性测试
克里斯蒂亚诺·罗纳尔达2 小时前
智能体学习23——资源感知优化(Resource-Aware Optimization)
人工智能·学习
橙露3 小时前
特征选择实战:方差、卡方、互信息法筛选有效特征
人工智能·深度学习·机器学习
TechMasterPlus3 小时前
LangGraph 实战指南:构建状态驱动的 LLM 应用架构
人工智能·架构
小夏子_riotous3 小时前
Docker学习路径——2、安装
linux·运维·分布式·学习·docker·容器·云计算
海森大数据4 小时前
数据与特征“协同进化”:机器学习加速发现高性能光合成过氧化氢COF催化剂
人工智能·机器学习
xiaotao1314 小时前
01-编程基础与数学基石: Python核心数据结构完全指南
数据结构·人工智能·windows·python