OpenClaw Docker部署后访问localhost:3000空白或拒绝连接,说明服务未正常启动或端口映射失败;需依次检查容器运行状态(docker ps)、查看日志定位ERROR(如/dist为空)、确认-p 3000:3000显式映射、用curl或netstat验证端口监听,并通过浏览器Network面板排查index.html及JS资源404问题。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw Docker部署完成后浏览器访问 localhost:3000 显示空白页或连接被拒绝,说明服务未正常启动或端口映射失败,需逐层排查容器状态、端口绑定和前端资源加载问题。
确认容器是否真正运行
执行 docker ps 查看容器列表,若没有 openclaw 相关容器,说明启动失败或已退出;此时必须先看日志,不能直接重试 docker run。
运行 docker ps -a | grep openclaw,找到 CONTAINER ID 后执行 docker logs <容器ID>,重点检查 ERROR 行——常见是 【/app/dist 文件夹为空,构建阶段未生成前端产物】,这会导致后端启动后立即崩溃。
如果日志中出现 “address already in use” 错误,说明 3000 端口被占用,需先释放端口再重启容器。
验证端口映射是否生效
方法一:用 curl 测试本地端口连通性 → 执行 curl -v http://localhost:3000,若返回 502 或 Connection refused,说明容器未监听该端口或未做 -p 3000:3000 映射。
方法二:进入容器内部验证服务监听状态 → docker exec -it <容器ID> sh → netstat -tuln | grep :3000,若无输出,证明应用根本没启动成功,不是端口映射问题,而是进程已挂掉。
注意:Docker run 命令中必须显式指定 -p 3000:3000,仅写 -p 3000 会随机分配宿主机端口,无法通过 localhost:3000 访问。
OpenClaw专家 — 用于任何OpenClaw问题或需求,包括配置错误、网关崩溃、网关未启动、斜杠指令、频道路由等。
检查前端静态资源是否加载成功
第一步:打开浏览器开发者工具(F12)→ 切换到 Network 标签 → 刷新页面 → 观察 /index.html 和 /static/js/main.*.js 的状态码。
第二步:若 index.html 返回 404,说明 Express 静态托管路径配置错误,检查 Dockerfile 中 COPY dist /app/dist 是否执行成功,以及 server.js 中 app.use(express.static(path.join(__dirname, 'dist'))) 路径是否匹配实际目录结构。
第三步:若 JS 文件返回 404 或 MIME 类型错误(如 text/html 而非 application/javascript),大概率是 Nginx 或反向代理配置缺失,而 OpenClaw 默认使用 Express 直接托管,【不要在 docker-compose.yml 中额外挂载 nginx 容器,除非你明确替换了默认服务入口】。
快速复位重建流程
① 停止并删除旧容器 → docker stop $(docker ps -q --filter ancestor=openclaw) 2>/dev/null → docker rm $(docker ps -a -q --filter ancestor=openclaw) 2>/dev/null
② 清理残留构建缓存 → docker builder prune -f
③ 重新构建镜像(确保当前目录含正确 Dockerfile 和已构建好的 dist 文件夹)→ docker build -t openclaw .
④ 启动容器并强制前台日志输出 → docker run -p 3000:3000 --rm openclaw,观察终端实时日志,直到出现 “Server running on http://localhost:3000” 字样后再切回浏览器测试。

















