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

参考资料

相关推荐
跨境数据猎手7 分钟前
跨境独立站系统技术拆解(附带源码)
服务器·前端·php
AOwhisky27 分钟前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes
小龙在慢慢变强..1 小时前
目录结构(FHS 标准)
linux·运维·服务器
2035去旅行1 小时前
嵌入式开发,如何选择C标准库
linux·arm开发
刘延林.1 小时前
win11系统下通过 WSL2 安装Ubuntu 24.04 使用RTX 5080 GPU
linux·运维·ubuntu
星恒讯工业路由器1 小时前
星恒讯工业生产自动化解决方案
运维·物联网·自动化·智能路由器·信息与通信
a8a3022 小时前
Laravel9.x新特性全解析
运维·spring boot·nginx
beyond阿亮2 小时前
IEC104 Client Simulator - IEC104 主站/客户端模拟器 仿真器免费使用教程
运维·服务器·网络
(Charon)2 小时前
【C++/Qt】Qt 封装 TCP 客户端底层 Network 类:连接、收发、自动测试与错误处理
服务器·网络·qt·tcp/ip
Agent产品评测局2 小时前
生产排期与MES/ERP系统打通,实操方法详解:2026企业级智能体与超自动化集成实战指南
运维·人工智能·ai·chatgpt·自动化