Rockylinux9 Docker搭建自己的Openclaw
文章中的安装均在联网条件下进行安装。
1 安装docker环境
1.1 卸载(可选)
已安装docker,或版本过时,需要重新安装新版本
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce
1.2 安装docker
(1)联网安装相关工具
yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken
(2)配置阿里安装镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3)执行安装
yum install -y docker-ce
(4)启动docker,并设置开机自启动
systemctl start docker #启动docker命令
systemctl enable docker #设置开机自启命令
docker version #查看docker版本命令
配置docker拉取镜像源
mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug": true,
"experimental": false
}
2 docker 部署Openclaw
2.1 拉取Openclaw镜像
注:本文原始镜像版本为: ghcr.io/openclaw/openclaw:2026.4.15
拉取官方镜像
docker pull ghcr.io/openclaw/openclaw:latest
或使用国内加速拉取镜像(文章后续部署使用此拉取的镜像,如使用官网镜像请注意修改)
docker pull ghcr.nju.edu.cn/openclaw/openclaw:latest
2.2 部署Openclaw
创建持久化目录
mkdir -p ~/.openclaw
mkdir -p ~/openclaw-workspace
docker 运行openclaw命令,建议固化到.sh脚本进行执行
docker run -d \
--name openclaw \
--restart unless-stopped \
--net=host \
-p 18789:18789 \
-v ~/.openclaw:/home/node/.openclaw \
-v ~/openclaw-workspace:/home/node/workspace \
-e TZ=Asia/Shanghai \
ghcr.nju.edu.cn/openclaw/openclaw:latest \
openclaw gateway run --allow-unconfigured
查看容器是否启动成功
docker ps
容器状态为 healthy 为启动成功

浏览器访问 http://自己的IP:18789

不能访问:检查防火墙18789端口是否放行,放行端口命令
firewall-cmd --permanent --add-port=18789/tcp
firewall-cmd --reload
2.3 问题及处理方法
(1)报错1:
origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)
这个错误是 OpenClaw 安全校验导致的:默认只允许从服务器本机打开控制台,远程浏览器访问会被拦截,只需要修改配置文件放开跨域即可

解决措施:执行修改允许所有IP均可访问配置命令,或将 * 修改为可访问IP
docker exec -it openclaw openclaw config set gateway.controlUi.allowedOrigins '["*"]'
出现标红内容为配置成功。

(2)报错2:
control ui requires device identity (use HTTPS or localhost secure context)
这个报错是浏览器安全限制:OpenClaw 控制台必须运行在 HTTPS 或 localhost 安全环境下,普通 http://IP 访问会被拦截。

通过部署nginx代理方式进行解决
拉取nginx镜像
docker pull nginx
创建证书存放目录
# 创建统一存放证书的目录
mkdir -p /opt/nginx/ssl
chmod -R 755 /opt/nginx
生成自签名 SSL 证书
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /opt/nginx/ssl/openclaw.key \
-out /opt/nginx/openclaw.crt \
-subj "/CN=localhost"
创建 Nginx 配置文件
创建配置文件目录
mkdir -p /opt/nginx/conf
创建 Nginx 代理 OpenClaw 的配置
vim opt/nginx/conf/nginx.conf
opt/nginx/conf/nginx.conf 内容(需修改54行为自己的IP):
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
# HTTP 自动跳转到 HTTPS
server {
listen 80;
server_name 你的域名; # 改成你的域名,如 www.xxx.com
return 301 https://$host$request_uri;
}
# HTTPS 配置
server {
listen 443 ssl;
server_name 你的域名; # 改成你的域名
# SSL 证书路径(容器内路径,不要改!)
ssl_certificate /opt/nginx/ssl/openclaw.crt; # 改成你的证书文件名
ssl_certificate_key /opt/nginx/ssl/openclaw.key; # 改成你的密钥文件名
# SSL 安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 网站根目录
location /root {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 网站根目录
location / {
proxy_pass http://自己的IP:18789; # 不要用127.0.0.1,127.0.0.1指向的是nginx容器内,非宿主机
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
}
}
}
创建nginx服务
docker run -d \
--name nginx-ssl \
--restart=always \
-p 443:443 \
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx/ssl:/opt/nginx/ssl \
-v /opt/nginx/html:/usr/share/nginx/html \
nginx
问题4:
pairing required
OpenClaw 对新设备(浏览器 / 客户端)实施一次性配对授权

执行命令查看待审批设备
docker exec -it openclaw openclaw devices list

对设备进行审批
docker exec -it openclaw openclaw devices approve 自己的设备(上一步查出的 Request 值)

3 最后
查看登录网关令牌
docker exec -it openclaw openclaw dashboard

在“网关令牌”填入“token”值进行登录

部署成功,开始自己的养龙虾之旅吧!
访问 https://自己的IP

更多推荐
所有评论(0)