Linux服务器Docker部署OpenClaw:腾讯云/阿里云/VPS安装避坑指南
说出来你可能不信,我在服务器上部署OpenClaw的时候,光是端口开放就搞了3个小时。什么安全组、 firewall-cmd、nginx反向代理...踩了个遍。今天把我的踩坑经验全部分享出来,让你一次搞定。
一句话概括
这篇文章告诉你:怎么在Linux服务器(腾讯云轻量、阿里云ECS、VPS)上用Docker跑起OpenClaw,以及我踩过的那些坑。
我为什么要用服务器部署?
先说说为什么我不只用Windows本地部署:
- 24小时运行:服务器不用关机,本地电脑还得开着
- 公网访问:不在家也能用微信/Telegram远程控制
- 性能更好:服务器配置一般都比个人电脑强
- 更稳定:企业级服务器比家用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 就是打不开。
排查过程:
- ping 服务器IP - 通的
- telnet 服务器IP 8080 - 不通
- 以为防火墙问题,service firewalld stop - 还是不通
- 最后才发现是安全组没开放!
解决方法:
登录腾讯云控制台 → 云服务器 → 安全组 → 配置规则 → 添加入站规则:
类型:自定义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
配置后再拉取,速度起飞!
国内可用的镜像源:
- 科大镜像:https://docker.mirrors.ustc.edu.cn
- 网易镜像:https://hub-mirror.c.163.com
- 百度镜像:https://mirror.baidubce.com
坑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复杂一些,主要坑在:
- 安全组要开放端口
- 防火墙要放行
- 数据要挂载卷
但配置好后真的爽,24小时运行,随时随地都能用。
有问题评论区问,看到了都会回。
下期预告:
下一期讲讲怎么在VPS上低成本部署OpenClaw,30块一个月,还要能通过域名让外网访问。敬请期待!
往期文章:
- Windows Docker安装OpenClaw
参考资料:
- OpenClaw官网:https://openclaw.ai
- Docker官方文档:https://docs.docker.com
- 腾讯云轻量:https://cloud.tencent.com/product/lighthouse