OpenClaw Docker部署踩坑全记录(OpenClaw v2026.3.23)

Written by

in

文章目录
  • 不污染宿主机 → Node、依赖、配置全部隔离在容器里 不会和本地环境冲突 → 不用担心你机器上已有 Node/npm/版本问题 可复制性极强 → 同一份 docker-compose.yml,在哪都能跑@改一下配置文件
  • 看你安装的是docker compose还是docker-compose,执行: docker-compose run –rm openclaw-cli onboard docker-compose -f docker-compose.yml run –rm openclaw-cli config set gateway.controlUi.allowedOrigins ‘[“*”]’ –strict-json docker-compose -f docker-compose.yml run –rm openclaw-cli config set gateway.controlUi.dangerouslyDisableDeviceAuth true docker-compose up -d openclaw-gateway
  • 因为我做了端口映射: http://127.0.0.1:18889 打开看到页面,复制token,密码不用填就能登录进去@改一下配置文件
  • 官网是需要git拉下来之后手动build,每次太麻烦了,不如把docker-compose.yml文件复制下来改改了。 如果你用官网的build方式,会生成一个.env文件,可以看openclaw/scripts/docker/setup.sh这个文件里面。 我之前一直纳闷官方docker compose的文件的环境变量是哪里来的,结果找啊找啊在这里找到了@改一下配置文件 以上就是OpenClaw Docker部署踩坑全记录(OpenClaw v2026.3.23)的详细内容,更多关于OpenClaw Docker部署踩坑记录的资料请关注风君子博客其它相关文章!
  • 目录
    • 一、选择docker部署
    • 二、准备工作
      • 2.1 选择镜像
      • 2.2 我的目录结构
      • 2.3 docker-compose文件
    • 三、docker部署流程
      • 3.1 过程如下
    • 四、访问地址
      • 五、官方的问题

        很多人第一次部署 OpenClaw,都会踩一个坑: 官方文档默认让你 clone + build + 配环境变量 但实际体验下来只有两个字:折腾 这篇文章,我直接给你一套更干净、更稳定的方案:纯Docker Compose部署(无需本地build)

        • 不污染宿主机 → Node、依赖、配置全部隔离在容器里
        • 不会和本地环境冲突 → 不用担心你机器上已有 Node/npm/版本问题
        • 可复制性极强 → 同一份 docker-compose.yml,在哪都能跑@改一下配置文件

        之前的文档里面有下面这段话,现在不知道为啥没有了。链接:https://docs.openclaw.ai/install/docker
        Use a remote image (skip local build)Official pre-built images are published at:
        GitHub Container Registry packageUse image name ghcr.io/openclaw/openclaw (not similarly named Docker Hub images).Common tags:
        main — latest build from main
        <version> — release tag builds (for example 2026.2.26)
        latest — latest stable release tag@改一下配置文件

        大意就是

        正确镜像名是:ghcr.io/openclaw/openclaw,而不是Docker Hub上的同名镜像,链接:https://github.com/openclaw/openclaw/pkgs/container/openclaw
        常用tag:
        main — 最新开发版(不稳定)
        latest — 稳定版本
        2026.x.x — 指定版本
        

        所以直接执行下面的命令就行, 这一步可能需要魔法。不行的话去渡渡鸟 docker.aityp.com/image/ghcr.… 去下载镜像,注意电脑架构。@改一下配置文件

        docker pull ghcr.io/openclaw/openclaw:2026.3.23
        

        openclaw/
        ├── docker-compose.yml
        └── data/
            ├── config/
            └── workspace/
        

        说明:

        • config:存配置(必须)
        • workspace:工作目录(可选)

        这是我实际跑通的版本

        services:
          openclaw-gateway:
            image: ghcr.io/openclaw/openclaw:2026.3.23
            container_name: openclaw-gateway
            environment:
              HOME: /home/node
              TERM: xterm-256color
              TZ: Asia/Shanghai
              # 必填 改成你自己的token 下面还有一个地方的token也得改
              OPENCLAW_GATEWAY_TOKEN: YOUR_TOKEN
              # 是否允许ws(一般不用改)
              OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: "false"
              # Claude 相关(按需填写)
              CLAUDE_AI_SESSION_KEY: ""
              CLAUDE_WEB_SESSION_KEY: ""
              CLAUDE_WEB_COOKIE: ""
            volumes:
              - ./data/config:/home/node/.openclaw
              # - ./data/workspace:/home/node/.openclaw/workspace
            ports:
              - "18889:18789"   # Web / API
              - "18890:18790"   # 内部 bridge
            # restart: unless-stopped # @改一下配置文件
            init: true
            command:
              [ "node", "dist/index.js", "gateway", "--bind", "lan", "--port", "18789",]
            healthcheck:
              test:
                [
                  "CMD",
                  "node",
                  "-e",
                  "fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))",
                ]
              interval: 30s
              timeout: 5s
              retries: 5
              start_period: 20s
          openclaw-cli:
            image: ghcr.io/openclaw/openclaw:2026.3.23
            container_name: openclaw-cli
            network_mode: "service:openclaw-gateway"
            cap_drop:
              - NET_RAW
              - NET_ADMIN
            security_opt:
              - no-new-privileges:true
            environment:
              HOME: /home/node
              TERM: xterm-256color
              TZ: Asia/Shanghai
              OPENCLAW_GATEWAY_TOKEN: YOUR_TOKEN
              OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: "false"
              BROWSER: echo
              CLAUDE_AI_SESSION_KEY: ""
              CLAUDE_WEB_SESSION_KEY: ""
              CLAUDE_WEB_COOKIE: ""
            volumes:
              - ./data/config:/home/node/.openclaw
              # - ./data/workspace:/home/node/.openclaw/workspace
            stdin_open: true
            tty: true
            init: true
            entrypoint: ["node", "dist/index.js"]
            depends_on:
              - openclaw-gateway

        看你安装的是docker compose还是docker-compose,执行:

        docker-compose run --rm openclaw-cli onboard
        docker-compose -f docker-compose.yml run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["*"]' --strict-json
        docker-compose -f docker-compose.yml run --rm openclaw-cli config set gateway.controlUi.dangerouslyDisableDeviceAuth true
        docker-compose up -d openclaw-gateway
        

        docker-compose run --rm openclaw-cli onboard
        方向键控制,回车确认,按空格多选
        I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue?
        │  Yes
        
        ◇  Setup mode
        │  QuickStart
        
        ◇  Model/auth provider
        │  vLLM
        
        ◇  vLLM base URL
        │  http://xx.xx.xx.xx:xxxxx/v1
        │
        ◇  vLLM API key
        │  token-xxxxxx
        │
        ◇  vLLM model
        │  Qwen3
        
        ◇  Default model
        │  Keep current (vllm/Qwen3)
        │
        ◇  Select channel (QuickStart)
        │  Skip for now
        │
        ◇  Search provider
        │  Skip for now
        │
        ◇  Configure skills now? (recommended)
        │  No
        │
        ◇  Set GOOGLE_PLACES_API_KEY for goplaces?
        │  No
        │
        ◇  Set NOTION_API_KEY for notion?
        │  No
        │
        ◇  Set OPENAI_API_KEY for openai-whisper-api?
        │  No
        │
        ◇  Set ELEVENLABS_API_KEY for sag?
        │  No
        │
        ◇  Enable hooks? 按空格多选@改一下配置文件
        │  📝 command-logger, 💾 session-memory
        
        

        因为我做了端口映射:

        http://127.0.0.1:18889
        

        打开看到页面,复制token,密码不用填就能登录进去@改一下配置文件

        • 官网是需要git拉下来之后手动build,每次太麻烦了,不如把docker-compose.yml文件复制下来改改了。
        • 如果你用官网的build方式,会生成一个.env文件,可以看openclaw/scripts/docker/setup.sh这个文件里面。
        • 我之前一直纳闷官方docker compose的文件的环境变量是哪里来的,结果找啊找啊在这里找到了@改一下配置文件

        以上就是OpenClaw Docker部署踩坑全记录(OpenClaw v2026.3.23)的详细内容,更多关于OpenClaw Docker部署踩坑记录的资料请关注风君子博客其它相关文章!

        站内搜索