Linux服务器Docker部署OpenClaw:腾讯云/阿里云/VPS安装避坑指南


Linux服务器Docker部署OpenClaw:腾讯云/阿里云/VPS安装避坑指南

说出来你可能不信,我在服务器上部署OpenClaw的时候,光是端口开放就搞了3个小时。什么安全组、 firewall-cmd、nginx反向代理...踩了个遍。今天把我的踩坑经验全部分享出来,让你一次搞定。


一句话概括

这篇文章告诉你:怎么在Linux服务器(腾讯云轻量、阿里云ECS、VPS)上用Docker跑起OpenClaw,以及我踩过的那些坑。


我为什么要用服务器部署?

先说说为什么我不只用Windows本地部署:

  1. 24小时运行:服务器不用关机,本地电脑还得开着
  2. 公网访问:不在家也能用微信/Telegram远程控制
  3. 性能更好:服务器配置一般都比个人电脑强
  4. 更稳定:企业级服务器比家用PC靠谱多了

缺点

  • 要花钱(但腾讯云轻量一个月就30块)
  • 需要配置公网访问(但我会一步步教你)

服务器选择

我用过的服务器总结:

服务商 类型 配置 价格 推荐指数
腾讯云轻量 LightHouse 2C4G 30/月 ⭐⭐⭐⭐⭐
阿里云ECS ECS 2C2G 40/月 ⭐⭐⭐⭐
Vultr VPS 2C4G 6刀/月 ⭐⭐⭐⭐
搬瓦工 VPS 2C2G 49刀/年 ⭐⭐⭐
DigitalOcean VPS 2C4G 6刀/月 ⭐⭐⭐⭐

个人推荐:腾讯云轻量,,性价比最高,国内访问速度快。

配置建议

  • 入门:2核2G(能跑,但可能会有点卡)
  • 推荐:2核4G(流畅)
  • 推荐:4核8G(富裕)

踩坑经历

先说说我在部署过程中踩过的坑,帮你避开:

坑1:端口开放了但访问不了

具体情况

我在腾讯云轻量上部署好OpenClaw,服务器上 curl localhost:8080 正常返回,但用手机4G网络访问 http://服务器IP:8080 就是打不开。

排查过程

  1. ping 服务器IP - 通的
  2. telnet 服务器IP 8080 - 不通
  3. 以为防火墙问题,service firewalld stop - 还是不通
  4. 最后才发现是安全组没开放!

解决方法

登录腾讯云控制台 → 云服务器 → 安全组 → 配置规则 → 添加入站规则:

复制代码
类型:自定义TCP
端口:8080
来源:0.0.0.0/0

经验总结:云服务器(腾讯云、阿里云、AWS等)有两层防火墙:

  • 安全组:云服务商控制的(必须开)
  • 防火墙(firewalld):服务器内置的(必须开)

两个都要开!

坑2:Docker镜像拉取超时

具体情况

执行 docker pull openclaw/openclaw:latest 后,一直显示"下载中",等了10分钟还是不动弹。最后超时失败。

原因:国内访问Docker官方镜像仓库太慢

解决方法

配置国内镜像源:

bash 复制代码
# 方法1:配置国内镜像(推荐)
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}
EOF

# 重启Docker
systemctl daemon-reload
systemctl restart docker

配置后再拉取,速度起飞!

国内可用的镜像源

坑3:防火墙没放行

具体情况

开放了安全组,但服务器上还是访问不了。

原因:Linux防火墙没开放端口

解决方法

bash 复制代码
# CentOS/RHEL
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

# Ubuntu/Debian
ufw allow 8080/tcp
ufw reload

坑4:重启后数据没了

具体情况

容器运行正常,但有一天我重启服务器后,再启动OpenClaw,所有配置都没了!包括我配置好的微信、Telegram渠道,全部需要重新配置。

原因:数据存在容器内部,重启后容器文件系统被清空

解决方法

一定要用 -v 参数做数据卷挂载:

bash 复制代码
# 创建数据目录
mkdir -p /opt/openclaw

# 启动时挂载数据卷
docker run -d \
  --name openclaw \
  -p 8080:8080 \
  -v /opt/openclaw:/root/.openclaw \
  openclaw/openclaw:latest

这样数据会保存在 /opt/openclaw 目录,重启后不会丢失。


正式安装流程

1. 连接服务器

bash 复制代码
ssh root@你的服务器IP

首次连接会提示确认,输入 yes 然后输入密码(密码在服务器控制台可以重置)

2. 更新系统

bash 复制代码
# CentOS
yum update -y

# Ubuntu/Debian
apt update && apt upgrade -y

3. 安装Docker

一键安装(推荐)

bash 复制代码
curl -fsSL https://get.docker.com | sh

或者手动安装:

CentOS

bash 复制代码
# 安装依赖
yum install -y yum-utils

# 添加Docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Ubuntu/Debian

bash 复制代码
# 更新apt
apt update

# 安装依赖
apt install -y ca-certificates curl gnupg lsb-release

# 添加Docker GPG key
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

# 添加Docker源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

启动Docker

bash 复制代码
systemctl start docker
systemctl enable docker

验证安装

bash 复制代码
docker --version
# Docker version 24.0.x

docker-compose --version
# Docker Compose version v2.24.x

4. 开放端口(重要!)

服务器防火墙

bash 复制代码
# CentOS
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

# Ubuntu
ufw allow 8080/tcp

云服务器安全组(必须去控制台开!):

  • 腾讯云:控制台 → 云服务器 → 安全组 → 添加入站规则 → TCP 8080
  • 阿里云:控制台 → ECS → 安全组 → 规则 → 添加入方向 → TCP 8080

5. 配置Docker镜像加速

bash 复制代码
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}
EOF

systemctl daemon-reload
systemctl restart docker

6. 启动OpenClaw

bash 复制代码
# 创建数据目录
mkdir -p /opt/openclaw

# 启动容器
docker run -d \
  --name openclaw \
  -p 8080:8080 \
  -v /opt/openclaw:/root/.openclaw \
  --restart unless-stopped \
  openclaw/openclaw:latest

7. 验证安装

bash 复制代码
# 查看容器状态
docker ps
# 应该能看到 openclaw 正在运行

# 查看日志
docker logs openclaw
# 应该看到类似 "Gateway starting on http://0.0.0.0:8080"

# 测试本地访问
curl http://localhost:8080

# 测试公网访问(用另一台电脑或手机)
curl http://你的服务器IP:8080

如果本地能访问但公网不能,就是安全组没开放的问题!


配置Nginx反向代理(进阶)

直接用 IP:端口 访问不方便,可以配置 Nginx 反向代理,用域名直接访问。

1. 安装Nginx

bash 复制代码
# CentOS
yum install -y nginx

# Ubuntu
apt install -y nginx

2. 配置反向代理

bash 复制代码
vim /etc/nginx/conf.d/openclaw.conf

写入:

nginx 复制代码
server {
    listen 80;
    server_name 你的域名或IP;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 超时设置
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

3. 启动Nginx

bash 复制代码
nginx -t
nginx -s reload

现在访问 http://你的IP 就能打开 OpenClaw 了!

4. 配置SSL(HTTPS)(进阶)

bash 复制代码
# 安装certbot
apt install -y certbot python3-certbot-nginx

# 获取SSL证书(需要域名)
certbot --nginx -d 你的域名

按提示操作,选择"Redirect"自动跳转HTTPS。


常用命令

bash 复制代码
# 查看容器状态
docker ps

# 查看日志
docker logs -f openclaw

# 重启容器
docker restart openclaw

# 停止容器
docker stop openclaw

# 启动容器
docker start openclaw

# 更新镜像
docker pull openclaw/openclaw:latest
docker rm -f openclaw
docker run -d ...(同启动命令)

# 查看资源使用
docker stats

数据备份

数据在 /opt/openclaw 目录,定期备份:

bash 复制代码
# 打包备份
tar -czvf openclaw-backup.tar.gz /opt/openclaw

# 恢复到新服务器
tar -xzvf openclaw-backup.tar.gz -C /

常见问题FAQ

Q1:重启后OpenClaw没自动启动?

:检查 --restart 参数是否设置正确

bash 复制代码
docker inspect openclaw | grep RestartPolicy

应该是 "always"

Q2:内存不够用?

:限制容器内存

bash 复制代码
docker update -m 1g openclaw

Q3:域名解析不生效?

:等待5-10分钟,用 ping 你的域名 测试

Q4:nginx启动失败?

:检查配置

bash 复制代码
nginx -t

成本汇总

项目 费用
腾讯云轻量 2C4G 30/月
域名(可选) 30/年
SSL证书(免费) 0
总计 约30/月

进阶配置

1. 配置HTTPS访问

bash 复制代码
# 安装certbot
apt install -y certbot python3-certbot-nginx

# 获取SSL证书
certbot --nginx -d 你的域名

2. 配置Docker镜像

yaml 复制代码
# docker-compose.yml
services:
  openclaw:
    image: openclaw/openclaw:latest
    environment:
      - TZ=Asia/Shanghai

3. 配置备份脚本

bash 复制代码
# 每天凌晨3点自动备份
0 3 * * * tar -czvf /backup/openclaw-$(date +\%Y\%m\%d).tar.gz /opt/openclaw

写在最后

Linux服务器部署比Windows复杂一些,主要坑在:

  1. 安全组要开放端口
  2. 防火墙要放行
  3. 数据要挂载卷

但配置好后真的爽,24小时运行,随时随地都能用。

有问题评论区问,看到了都会回。


下期预告

下一期讲讲怎么在VPS上低成本部署OpenClaw,30块一个月,还要能通过域名让外网访问。敬请期待!

往期文章

  • Windows Docker安装OpenClaw

参考资料

相关推荐
原来是猿3 小时前
Linux-【动静态库】
linux·运维·服务器
深圳市恒讯科技4 小时前
云服务器怎么选?从CPU、内存到IOPS的零基础选型手册
运维·服务器
艾莉丝努力练剑5 小时前
【脉脉】AI创作者崛起:掌握核心工具,在AMA互动中共同成长
运维·服务器·c++·人工智能·安全·企业·脉脉
九皇叔叔5 小时前
CentOS 7.5/RHEL 7.x 配置 YUM 源(阿里云镜像+本地源双方案)
linux·阿里云·centos
chinesegf6 小时前
DNS 验证验证SSL证书
linux·服务器·网络
未佩妥剑,已入江湖7 小时前
docker Windows下安装
运维·windows·docker·容器
试试勇气7 小时前
Linux学习笔记(十七)--线程概念
linux·笔记·学习
LXY_BUAA8 小时前
《嵌入式操作系统》_高级字符设备驱动_20260316
linux·运维·服务器·驱动开发
顶妙WMS海外仓管理系统8 小时前
Shopify卖家破910万,海外仓如何对接Shopify独立站?
运维·产品运营