CentOS上使用Docker部署OpenClaw的全过程

 更新时间:2026年04月17日 09:48:16   作者:springlustre  
这篇文章主要介绍了在阿里云上部署OpenClaw并接入阿里云百炼模型的过程,详细记录了环境准备、部署步骤、访问与使用方法,以及常见问题解决方法,需要的朋友可以参考下

其实现在好多云厂商都出了 OpenClaw 的一键镜像,点几下就能跑起来。但我手里正好有台阿里云的虚拟机闲着也是闲着,打算在自己服务器上搭一下。而且我也不想让 AI 助手一直挂在本地的电脑上,占资源也不安全。至于大模型,我选了阿里云百炼,新用户还能领几千万的免费额度,对我这种自己玩玩的来说,够用一阵子。

1. 环境准备

1.1 安装Docker和Docker Compose

# 安装Docker
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

1.2 配置Docker镜像加速器(可选,国内推荐)

sudo cat > /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.3 开放阿里云安全组端口

登录阿里云控制台,进入ECS实例的安全组,添加入方向规则:

  • 端口:28789 //这个端口默认是18789,因为我之前部署过,所以换个新端口
  • 协议:TCP
  • 授权对象:0.0.0.0/0(或你的本地IP)

2. 部署OpenClaw

2.1 创建项目目录

进入你习惯的目录作为根目录

mkdir ~/openclaw && cd ~/openclaw

2.2 编写docker-compose.yml

version: '3.8'
services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw
    ports:
      - "28789:18789"
    volumes:
      - ./openclaw-data:/home/node/.openclaw
    user: "1000:1000"
    restart: unless-stopped

2.3 创建配置目录并设置权限

mkdir -p openclaw-data
sudo chown -R 1000:1000 openclaw-data

2.4 编写openclaw.json配置文件

openclaw-data/目录下创建openclaw.json

cat > openclaw-data/openclaw.json << 'EOF'
{
  "gateway": {
    "bind": "lan",
    "port": 18789,
    "mode": "local",
    "auth": {
      "mode": "token",
      "token": "your-strong-token-here"
    },
    "controlUi": {
      "allowedOrigins": ["http://你的服务器公网IP:28789"],
      "dangerouslyDisableDeviceAuth": true
    }
  },
  "models": {
    "mode": "merge",
    "providers": {
      "aliyun_bailian": {
        "api": "openai-completions",
        "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "apiKey": "sk-你的阿里云百炼API-KEY",
        "models": [
          { "id": "qwen-max", "name": "通义千问 Max" },
          { "id": "qwen-plus", "name": "通义千问 Plus" }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": "aliyun_bailian/qwen-max",
      "models": {
        "aliyun_bailian/qwen-max": {},
        "aliyun_bailian/qwen-plus": {}
      }
    }
  }
}
EOF

重要替换

  • your-strong-token-here改为你自己的强密码。
  • 你的服务器公网IP替换为阿里云ECS的公网IP。
  • sk-你的阿里云百炼API-KEY替换为你在阿里云百炼控制台获取的真实API Key。

2.5 启动服务

docker compose up -d

2.6 查看日志确认启动成功

docker logs openclaw --tail 50

出现类似[gateway] ready的日志即表示成功。

3. 访问与使用

3.1 Web界面访问

浏览器打开:http://你的服务器公网IP:28789

系统会提示输入Token,输入你在openclaw.json中设置的token值。

3.2 选择模型

登录后,在聊天界面的模型下拉菜单中,选择aliyun_bailian/qwen-maxaliyun_bailian/qwen-plus,即可开始对话。

3.3 验证模型调用

发送消息,查看结果。

4. 常见问题解决

4.1 访问时提示“origin not allowed”

现象:浏览器访问时显示origin not allowed,WebSocket连接被拒绝。

解决方法

  • 确保openclaw.jsongateway.controlUi.allowedOrigins包含了你的完整访问地址(例如["http://123.456.789.0:28789"])。
  • 同时设置"dangerouslyDisableDeviceAuth": true(测试环境可用,生产环境建议配置HTTPS)。
  • 修改后重启容器:docker compose restart

4.2 模型调用失败,提示“Unknown model”

现象:日志中出现Unknown model: xxx

解决方法

  • 检查openclaw.jsonmodels.providers里的models数组是否包含了你尝试调用的模型ID。
  • 检查agents.defaults.modelagents.defaults.models中的模型ID是否与providers中的ID完全一致(注意格式为provider_id/model_id)。
  • 如果已有旧的agent配置,可删除openclaw-data/agents目录后重启容器,让系统重新生成。

5. 更新OpenClaw

docker compose pull
docker compose up -d

数据会保留在openclaw-data目录中,配置不受影响。

通过以上步骤,你可以在阿里云CentOS上成功部署OpenClaw,并接入阿里云百炼模型,通过Web界面进行对话。所有配置均持久化,便于后续维护和升级。

以上就是CentOS上使用Docker部署OpenClaw的全过程的详细内容,更多关于CentOS Docker部署OpenClaw的资料请关注脚本之家其它相关文章!

相关文章

  • linux中启动tomcat后浏览器无法访问的解决方法

    linux中启动tomcat后浏览器无法访问的解决方法

    最近在启动了tomcat后发现了一些问题,通过查找相关资料终于解决了,下面将解决方法分享给大家,这篇文章主要给大家介绍了关于linux中启动tomcat后浏览器无法访问的解决方法,需要的朋友可以参考下。
    2017-12-12
  • ubuntu定时执行python脚本实例代码

    ubuntu定时执行python脚本实例代码

    这篇文章主要给大家介绍了关于ubuntu定时执行python脚本的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ubuntu具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • Linux基础命令之mktemp详解

    Linux基础命令之mktemp详解

    创建临时文件或者目录,这样的创建方式是安全的。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。这篇文章主要介绍了Linux基础命令之mktemp ,需要的朋友可以参考下
    2018-10-10
  • Ubuntu 24.04中优雅地修改主机名的具体步骤和方法

    Ubuntu 24.04中优雅地修改主机名的具体步骤和方法

    在使用 Ubuntu 的过程中,有时我们会想要修改主机名,例如为了统一命名规范、更好地识别主机,或者只是因为安装系统时随便填了个名字,本文将带你一步一步地,在 Ubuntu 24.04 系统中 优雅且安全地修改主机名,需要的朋友可以参考下
    2025-09-09
  • Linux实现IP地址转换函数的全面指南

    Linux实现IP地址转换函数的全面指南

    本文全面介绍了Linux系统中IP地址转换函数的使用方法,涵盖了IPv4和IPv6地址在字符串与二进制形式间的相互转换,下面小编就和大家详细介绍一下吧
    2026-01-01
  • Linux知识点小结

    Linux知识点小结

    这篇文章主要为大家分享了Linux知识点,帮助大家更加详细的学习Linux
    2016-01-01
  • CentOS7 systemd添加自定义系统服务的方法

    CentOS7 systemd添加自定义系统服务的方法

    这篇文章主要介绍了CentOS7 systemd添加自定义系统服务,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • 详细分析Linux文件系统

    详细分析Linux文件系统

    本片文章通过存储机制,结构等方便对Linux文件系统做了详细分析和解读,一起学习参考下吧。
    2017-12-12
  • apache服务器一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定

    apache服务器一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定

    今天在学习PHP时,用的是apache服务器有这样的一个需求:一个ip(如:127.0.0.1)和多个域名(虚拟主机)绑定,以下是我的解决方案,需要的朋友可以参考下
    2015-01-01
  • CentOS7 curl版本升级过程

    CentOS7 curl版本升级过程

    文章主要介绍了如何在CentOS 6.8系统上升级curl到最新版本7.53.1,首先查看当前curl版本,然后更新ca-bundle,新增repo源,最后使用命令直接更新curl并验证版本
    2026-01-01

最新评论