OpenClaw API服务打不开需先确认容器运行状态,再检查端口映射是否为8000:8000、服务是否绑定0.0.0.0:8000、沙箱镜像是否拉取成功及/var/run/docker.sock是否挂载。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw部署后API服务打不开,说明容器已启动但HTTP端口未响应或服务进程未就绪,常见于端口映射失败、服务监听地址错误、容器内进程崩溃或沙箱依赖未拉取等场景。
确认容器是否真正在运行
执行 docker ps 查看容器状态。若列表中没有 openclaw 相关容器,或状态显示为 Exited,说明启动失败而非服务未响应。
若容器存在但状态为 Up X seconds(如仅几秒),大概率是主进程启动后立即退出——此时必须查日志,不能只盯着浏览器。
运行 docker logs openclaw-app(或你起的容器名)查看最后一屏输出。重点关注 Failed to bind address、Connection refused、ModuleNotFoundError 或 Permission denied 类报错。
检查API端口是否被正确暴露和监听
OpenClaw 默认 API 服务监听 容器内部 8000 端口,不是 3000。很多用户照搬 OpenHands 的 3000 端口配置,导致映射错位。
确认你启动命令中使用的是 -p 8000:8000 而非 -p 3000:3000。若用 docker-compose,请检查 docker-compose.yml 中 ports 字段是否写成 "8000:8000"。
若已映射 8000 端口但仍无法访问,执行:docker exec -it openclaw-app ss -tln | grep :8000
若无输出,说明服务根本没在容器内监听该端口——问题不在网络,而在应用本身未启动成功。
验证服务进程是否真正启动
进入容器内部直接测试服务健康态:docker exec -it openclaw-app curl -v http://localhost:8000/health
如果返回 curl: (7) Failed to connect,说明 FastAPI/Uvicorn 进程未运行或监听地址不对。
OpenClaw 要求服务绑定到 0.0.0.0:8000,而非 127.0.0.1:8000。若启动命令中指定 --host 127.0.0.1,外部请求必然失败。【必须使用 --host 0.0.0.0】
典型正确启动命令片段:uvicorn api.main:app --host 0.0.0.0 --port 8000 --reload
排查沙箱运行时依赖缺失
方法一:手动拉取沙箱镜像
OpenClaw 启动时需加载专用沙箱镜像(如 openclaw/sandbox:latest)。若网络不通或镜像名变更,主服务会卡在初始化阶段,不报错也不监听端口。
运行:docker pull openclaw/sandbox:latest
若提示 manifest unknown,说明镜像标签已失效,需查阅最新 README 确认有效 tag。
方法二:检查容器是否挂载了 /var/run/docker.sock
OpenClaw 沙箱机制依赖宿主机 Docker 引擎,若启动命令遗漏 -v /var/run/docker.sock:/var/run/docker.sock,服务会在首次调用沙箱时静默失败,【缺少该挂载将导致 API 服务无法完成初始化】。


















