在2026年AI自动化工具普及的背景下,OpenClaw(曾用名Moltbot、Clawdbot)凭借强大的任务执行能力、多场景适配特性,成为个人与轻量团队打造专属AI助手的热门选择。然而传统部署方式常受限于服务器已有服务,无法直接重装镜像,而Docker容器化部署完美解决这一痛点——通过隔离环境实现OpenClaw独立运行,不影响现有服务,同时支持灵活迁移与扩展。本文将详细拆解Docker部署OpenClaw的全流程,包含SSL证书申请、Nginx反向代理、域名绑定、HTTPS配置等关键步骤,所有代码命令可直接复制执行,同时新增阿里云OpenClaw快速部署步骤,满足不同用户的部署需求,无论是已有服务器的用户,还是希望快速上手云端部署的新手,都能轻松实现OpenClaw公网安全访问。
一、核心认知:Docker部署OpenClaw的核心优势
相较于直接部署或云服务器镜像部署,Docker为OpenClaw带来三大核心优势,尤其适合已有服务器服务的场景:
- 环境隔离无冲突:Docker容器与主机系统完全隔离,OpenClaw运行所需的依赖、端口不会与现有服务冲突,无需担心重装系统或修改现有配置;
- 部署灵活可迁移:容器化打包后,可快速在不同服务器间迁移,部署流程完全一致,无需重复配置环境,大幅提升部署效率;
- 资源占用可控:Docker容器轻量化特性,可精准分配OpenClaw所需CPU、内存资源,避免资源浪费,同时支持容器启停、重启等快速操作,运维更便捷。
补充说明:OpenClaw、Moltbot、Clawdbot本质是同一套AI自动化框架,仅为不同迭代阶段的名称变更,核心功能、部署命令与配置流程完全一致,Docker部署时无需区分,仅需注意容器内进程名可能保留历史命名,不影响功能使用。
二、部署前置准备
正式部署前需完成四项基础准备,确保域名、服务器、工具等配置到位,所有准备均为免费或低成本获取,按指引执行即可:
- 服务器环境:拥有一台运行中的服务器(推荐Linux系统,如Ubuntu、Debian),确保服务器有公网IP,且未占用80、443、18789端口(若已占用,后续可修改配置文件端口);
- 域名准备:注册一个域名(如xyz、top后缀,低成本6位纯数字域名年付仅8元),用于绑定OpenClaw服务,实现公网访问;
- 工具准备:服务器需支持SSH连接,本地电脑安装终端工具(如FinalShell、Xshell),用于执行命令操作;
- 辅助资源:SSL证书(通过Let's Encrypt免费申请,有效期90天),Docker及Docker Compose(后续步骤将详细讲解安装)。
三、阿里云OpenClaw(Clawdbot)快速部署步骤(新手首选)
对于新手用户或希望快速实现云端稳定运行的用户,阿里云提供OpenClaw专属镜像,无需手动配置Docker与环境依赖,一键部署即可完成,核心步骤仅5步,10分钟内即可实现公网访问:
- 账号与实名认证:注册阿里云账号,登录阿里云账号,完成实名认证(个人用户支持支付宝刷脸验证,即时生效),确保账号无欠费;
- 购买轻量应用服务器:访问阿里云轻量应用服务器购买页,选择「应用镜像」中的「OpenClaw(原Moltbot/Clawdbot)」,地域优先选择海外(如新加坡、中国香港)或国内免备案地域,配置选择2核2G内存+40G ESSD,购买时长按需求选择;
阿里云一键部署OpenClaw步骤流程
第一步:访问阿里云OpenClaw一键部署专题页面,找到并点击【一键购买并部署】。
阿里云OpenClaw一键部署专题页面:https://www.aliyun.com/activity/ecs/clawdbot


第二步:选购阿里云轻量应用服务器,配置参考如下:
- 镜像:OpenClaw(Moltbot)镜像(已经购买服务器的用户可以重置系统重新选择镜像)
- 实例:内存必须2GiB及以上。
- 地域:默认美国(弗吉尼亚),目前中国内地域(除香港)的轻量应用服务器,联网搜索功能受限。
- 时长:根据自己的需求及预算选择。



第三步:访问阿里云百炼大模型控制台,找到密钥管理,单击创建API-Key。
前往轻量应用服务器控制台,找到安装好OpenClaw的实例,进入「应用详情」放行18789端口、配置百炼API-Key、执行命令,生成访问OpenClaw的Token。
- 端口放通:需要放通对应端口的防火墙,单击一键放通即可。
- 配置百炼API-Key,单击一键配置,输入百炼的API-Key。单击执行命令,写入API-Key。
- 配置OpenClaw:单击执行命令,生成访问OpenClaw的Token。
- 访问控制页面:单击打开网站页面可进入OpenClaw对话页面。
- 放通核心端口:服务器创建完成后,进入实例详情页「防火墙」,一键放通80(HTTP)、443(HTTPS)、18789(OpenClaw默认端口);
- 配置域名解析:在域名服务商控制台(如阿里云DNS),添加A记录,将域名解析至服务器公网IP;
- 申请SSL证书并配置:在阿里云SSL证书控制台,申请免费Let's Encrypt证书,绑定域名后下载证书文件,通过服务器WebShell上传至
/etc/nginx/ssl目录,完成HTTPS配置,即可通过域名访问OpenClaw。
快速部署步骤适合新手快速上手,无需关注Docker与容器配置,若需自定义配置或已有服务器,可按以下Docker全流程部署。
四、Docker部署OpenClaw全流程详细操作
本部分为Docker容器化部署OpenClaw的完整步骤,包含Docker安装、SSL证书申请、Nginx反向代理、OpenClaw容器构建与配置、域名绑定等核心操作,所有代码命令可直接复制执行,确保部署过程顺畅,最终实现HTTPS加密的公网访问。
步骤1:安装Docker与Docker Compose
Docker是容器化部署的基础,需先完成安装并配置国内镜像源,提升镜像拉取速度,操作如下:
# 安装Docker(使用阿里云镜像源,速度更快)
curl -fsSL https://get.docker.com | sudo sh -s -- --mirror Aliyun
# 启动Docker服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
# 配置Docker国内镜像源(境内服务器必做,境外服务器可忽略)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.1ms.run"]
}
EOF
# 重启Docker使配置生效
sudo systemctl restart docker
# 验证Docker安装成功(显示版本号即成功)
docker --version
# 安装Docker Compose(用于管理多容器应用)
sudo apt-get install docker-compose-plugin -y
# 验证Docker Compose安装成功
docker compose version
步骤2:申请免费SSL证书(Let's Encrypt)
为实现HTTPS加密访问,需先申请SSL证书,通过ACME客户端在线申请,全程免费,有效期90天,步骤如下:
- 访问ACME在线客户端:打开浏览器,访问
https://acme.9kr.cc,选择证书颁发机构为「Let's Encrypt」; - 配置证书信息:
- 证书中要包含的域名:输入已注册的域名(如
openclaw.9kr.cc); - 证书的私钥:选择「创建新RSA私钥」(2048位,适用性更广);
- ACME账户的私钥:选择「创建新RSA私钥」;
- ACME账户的联系邮箱:填写个人邮箱(用于证书到期提醒);
- 勾选同意服务条款,点击「确定」;
- 证书中要包含的域名:输入已注册的域名(如
- 验证域名所有权:选择「DNS验证」,记录系统生成的子域名(如
_acme-challenge.openclaw.9kr.cc)与TXT记录值; - 配置DNS解析:登录域名服务商控制台(如阿里云DNS),添加一条TXT记录,主机记录为子域名前缀(如
_acme-challenge.openclaw),记录值为系统生成的TXT记录,TTL设置为10分钟; - 下载证书文件:返回ACME客户端页面,点击「开始验证」,验证通过后,下载证书PEM文件(后缀可改为.crt)、证书私钥KEY文件,同时下载记录LOG文件(用于后续证书续签),保存至本地电脑。
步骤3:部署Nginx反向代理(实现HTTPS与域名绑定)
Nginx用于实现域名反向代理至OpenClaw容器,同时配置HTTPS加密,需先创建Nginx容器与配置文件,操作如下:
3.1 创建Nginx目录结构与配置文件
# 创建Nginx持久化目录(用于存储配置、证书、日志)
cd ~
mkdir -p nginx-docker/data/{
conf.d,ssl,logs,html}
cd nginx-docker
# 创建临时Nginx容器,复制默认配置文件(用于后续修改)
docker run --name nginx-temp -d nginx:latest
docker cp nginx-temp:/etc/nginx/nginx.conf ./data/
docker cp nginx-temp:/etc/nginx/conf.d ./data/conf.d/
docker stop nginx-temp && docker rm nginx-temp
3.2 上传SSL证书至服务器
通过SSH工具(如FinalShell),将步骤2下载的证书文件(.crt)与私钥文件(.key)上传至~/nginx-docker/data/ssl目录,文件名建议与域名一致(如openclaw.9kr.cc.crt、openclaw.9kr.cc.key)。
3.3 创建Docker Compose配置文件
编辑docker-compose.yml文件,配置Nginx服务,内容如下:
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx
restart: unless-stopped
ports:
- "80:80" # HTTP端口
- "443:443" # HTTPS端口
volumes:
- ./data/html:/usr/share/nginx/html
- ./data/nginx.conf:/etc/nginx/nginx.conf
- ./data/conf.d:/etc/nginx/conf.d
- ./data/logs:/var/log/nginx
- ./data/ssl:/etc/nginx/ssl # 证书文件目录
extra_hosts:
- "host.docker.internal:host-gateway" # 允许容器访问主机
3.4 配置Nginx反向代理规则
创建OpenClaw专属反向代理配置文件,实现域名与容器的关联,同时配置HTTPS加密:
# 编辑反向代理配置文件
sudo nano ./data/conf.d/openclaw.conf
粘贴以下配置内容,将openclaw.9kr.cc替换为你的域名,证书路径按实际文件名修改:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# HTTP跳转HTTPS
server {
listen 80;
server_name openclaw.9kr.cc; # 替换为你的域名
return 301 https://$server_name$request_uri;
}
# HTTPS配置
server {
listen 443 ssl http2;
server_name openclaw.9kr.cc; # 替换为你的域名
# SSL证书配置(替换为实际证书路径)
ssl_certificate /etc/nginx/ssl/openclaw.9kr.cc.crt;
ssl_certificate_key /etc/nginx/ssl/openclaw.9kr.cc.key;
# SSL安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# HSTS配置,强制浏览器使用HTTPS
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
# 反向代理至OpenClaw容器
location / {
proxy_pass http://openclaw-gateway:18789; # 容器名称与端口
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_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
# WebSocket支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# 超时配置
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
proxy_connect_timeout 75s;
# 禁用缓存
proxy_buffering off;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
proxy_cache off;
proxy_no_cache 1;
proxy_cache_bypass 1;
}
}
保存并退出(Ctrl+O保存,Ctrl+X退出),启动Nginx容器:
# 启动Nginx容器
docker compose up -d
# 查看容器运行状态(显示running即成功)
docker ps | grep nginx
3.5 验证Nginx配置
打开浏览器,输入https://你的域名,若显示「502 Bad Gateway」,说明Nginx配置生效(此时OpenClaw容器未部署,属于正常现象),且左上角显示小锁头,表明HTTPS配置成功。
步骤4:构建并部署OpenClaw容器
OpenClaw容器需通过源码构建镜像,确保使用最新版本,同时配置持久化存储与容器网络,操作如下:
4.1 拉取OpenClaw源码并构建Docker镜像
# 拉取OpenClaw最新源码
cd ~
git clone https://github.com/openclaw/openclaw
cd openclaw/
# 获取最新版本标签并切换,构建镜像
LATEST_TAG=$(git tag --sort=-creatordate | head -1) && git checkout $LATEST_TAG && docker build -t openclaw:$LATEST_TAG .
# 查看构建的镜像(记录镜像名称与版本,如openclaw:v2026.1.30)
docker images | grep openclaw
4.2 创建OpenClaw容器持久化目录
用于存储OpenClaw配置文件与数据,确保容器重启后配置不丢失:
# 创建持久化目录并设置权限(避免容器内权限不足报错)
cd ~
mkdir -p openclaw-docker/{
config,data}
chown -R 1000:1000 openclaw-docker/{
config,data}
cd openclaw-docker
4.3 创建OpenClaw Docker Compose配置文件
编辑docker-compose.yml文件,配置OpenClaw网关与CLI工具,内容如下(将openclaw:v2026.1.30替换为实际镜像版本):
version: '3.8'
services:
openclaw-gateway:
image: openclaw:v2026.1.30 # 替换为实际镜像版本
container_name: openclaw-gateway
restart: unless-stopped
ports:
- "18789:18789" # 端口映射
volumes:
- ./data/config:/home/node/.openclaw # 配置文件持久化
- ./data/data:/home/node/clawd # 数据持久化
extra_hosts:
- "host.docker.internal:host-gateway"
shm_size: 2g # 共享内存大小,确保浏览器沙箱正常运行
command: node /app/dist/index.js gateway --port 18789
openclaw-cli:
image: openclaw:v2026.1.30 # 与网关镜像版本一致
container_name: openclaw-cli
network_mode: "service:openclaw-gateway" # 共享网关网络
volumes:
- ./data/config:/home/node/.openclaw
- ./data/data:/home/node/clawd
entrypoint: ["node", "dist/index.js"]
4.4 初始化OpenClaw配置
通过CLI工具完成OpenClaw初始化,设置网关密码、端口等核心配置,操作如下:
# 执行初始化命令,进入交互式配置
docker compose run --rm -it openclaw-cli onboard
按以下提示完成配置(可按需调整,后期可通过配置文件修改):
◇ I understand this is powerful and inherently risky. Continue? → Yes
◇ Onboarding mode → Manual
◇ What do you want to set up? → Local gateway (this machine)
◇ Workspace directory → /home/node/.openclaw/workspace(默认)
◇ Model/auth provider → Skip for now(后续可配置阿里云百炼等模型)
◇ Filter models by provider → All providers
◇ Default model → Keep current(默认)
◇ Gateway port → 18789(默认,与Nginx配置一致)
◇ Gateway bind → LAN (0.0.0.0)(允许局域网访问)
◇ Gateway auth → Password(设置登录密码)
◇ Tailscale exposure → Off
◇ Gateway password → 输入自定义密码(后续登录需使用)
◇ Configure chat channels now? → No
◇ Configure skills now? → No
◇ Enable hooks? → Skip for now(空格选择后回车)
◇ Install shell completion script? → Yes
初始化完成后,会自动生成配置文件,存储在./data/config目录。
4.5 启动OpenClaw网关服务
# 启动OpenClaw网关容器
docker compose up -d openclaw-gateway
# 查看容器运行状态(显示running即成功)
docker ps | grep openclaw-gateway
步骤5:设备配对与功能验证
启动容器后,需完成设备配对,才能通过Web控制台访问OpenClaw,操作如下:
- 访问OpenClaw Web控制台:打开浏览器,输入
https://你的域名,进入登录页面; - 输入网关密码:点击侧边栏「Overview」,在「Password」输入框中填写初始化时设置的密码,点击「Connect」;
- 设备配对:回到服务器终端,执行以下命令列出待配对设备,批准配对请求:
# 列出待配对设备(记录Request ID) docker compose run --rm openclaw-cli devices list # 批准配对(替换<Request ID>为实际ID) docker compose run --rm openclaw-cli devices approve <Request ID> - 功能验证:刷新浏览器页面,若显示「Health OK」且状态为「Connected」,说明配对成功,进入「Chat」页面发送测试指令(如「你好」),若能正常响应,表明OpenClaw部署成功。
五、常见问题排查(90%问题可解决)
结合部署实测经验,整理了Docker部署OpenClaw过程中最常见的8个问题,每个问题均提供具体原因与解决方案,新手可直接对照排查:
问题1:Docker安装失败,提示「权限不足」?
- 原因:未使用sudo权限执行命令,或服务器系统不兼容;
- 解决方案:在命令前添加sudo,确保服务器系统为Ubuntu 20.04+、Debian 11+等兼容版本,更新系统后重新安装:
sudo apt-get update && sudo apt-get upgrade -y。
问题2:Nginx容器启动失败,提示「端口被占用」?
- 原因:服务器80或443端口已被其他服务占用(如Apache、自带Nginx);
- 解决方案:停止占用端口的服务(
sudo systemctl stop apache2),或修改Nginx配置文件中的端口(如将80改为8080,443改为8443),同时更新域名解析与反向代理配置。
问题3:访问域名显示「SSL证书无效」?
- 原因:证书文件路径错误、证书与域名不匹配、DNS验证未生效;
- 解决方案:核对Nginx配置中的证书路径,确保与实际文件一致;确认证书绑定的域名与访问域名一致;等待DNS解析生效(TTL设置为10分钟,通常需5-10分钟)。
问题4:OpenClaw初始化时提示「权限不足」?
- 原因:持久化目录权限未设置为1000:1000,容器内用户无读写权限;
- 解决方案:重新设置目录权限:
chown -R 1000:1000 openclaw-docker/{config,data},重新执行初始化命令。
问题5:Nginx反向代理显示「502 Bad Gateway」,OpenClaw容器已启动?
- 原因:Nginx配置中的容器名称或端口错误,或容器网络未互通;
- 解决方案:核对Nginx配置中
proxy_pass的容器名称(openclaw-gateway)与端口(18789)是否正确;确保Nginx与OpenClaw容器在同一网络,可通过docker network inspect 网络名称查看。
问题6:设备配对时提示「Request ID不存在」?
- 原因:配对请求已过期,或未正确获取Request ID;
- 解决方案:刷新浏览器页面,重新触发配对请求,立即执行
devices list命令获取最新Request ID,及时批准配对(请求有效期约5分钟)。
问题7:OpenClaw容器启动后,无法调用模型?
- 原因:未配置模型提供商API-Key,或网络无法访问模型服务;
- 解决方案:执行
openclaw config edit命令,配置阿里云百炼、OpenAI等模型API-Key;若为境内服务器,需配置代理,在Docker Compose中添加环境变量(参考配置文件注释部分)。
问题8:证书到期后如何续签?
- 原因:Let's Encrypt证书有效期为90天,到期后需重新申请;
- 解决方案:打开ACME客户端,拖拽之前下载的LOG文件,自动填充配置信息,重新验证域名所有权后下载新证书,替换服务器上的旧证书文件,重启Nginx容器:
docker compose restart nginx。
六、后续运维与功能拓展
部署完成后,掌握基础运维技巧,确保OpenClaw服务稳定运行,同时可按需拓展功能,提升使用体验:
(一)基础运维命令
# 查看容器运行日志(排查问题)
docker logs -f openclaw-gateway
docker logs -f nginx
# 重启OpenClaw服务
docker compose restart openclaw-gateway
# 重启Nginx服务
docker compose -f ~/nginx-docker/docker-compose.yml restart nginx
# 停止所有相关容器
docker stop openclaw-gateway openclaw-cli nginx
# 查看容器资源占用情况
docker stats
(二)功能拓展建议
- 配置模型提供商:执行
openclaw config edit,添加阿里云百炼、通义千问等模型API-Key,提升OpenClaw推理能力; - 安装实用插件:通过
openclaw plugin install 插件名称安装文档处理、定时任务、多模态解析等插件,拓展功能场景; - 配置聊天渠道:支持对接钉钉、飞书、Telegram等IM工具,实现通过聊天工具发送指令,具体可参考OpenClaw官方文档;
- 定期备份配置:将
openclaw-docker/data/config目录下的配置文件备份至本地,避免容器删除导致配置丢失; - 证书自动续签:可编写Shell脚本,结合crontab定时任务,实现证书到期自动续签,无需手动操作。
七、总结:部署核心要点与使用建议
本文详细讲解了Docker容器化部署OpenClaw的全流程,从Docker安装、SSL证书申请、Nginx反向代理到OpenClaw容器构建与配置,每一步均提供可直接复制的代码命令,同时补充了阿里云快速部署步骤,满足不同用户的需求。Docker部署的核心优势在于环境隔离与灵活迁移,适合已有服务器的用户,而阿里云快速部署则适合新手,无需关注底层配置,快速实现云端稳定运行。
核心要点回顾
- 关键前提:确保服务器端口未占用、域名解析正确、SSL证书配置无误,Docker与容器网络互通;
- 安全优先:设置网关密码、启用HTTPS加密、定期更换API-Key,避免未授权访问;
- 配置一致性:Nginx反向代理的端口、容器端口、OpenClaw网关端口需保持一致(默认18789);
- 问题排查:遇到错误先查看容器日志,优先排查端口、权限、配置路径等基础问题。
新手使用建议
- 首次部署推荐使用阿里云快速部署步骤,降低技术门槛,熟悉后再尝试Docker自定义配置;
- 证书到期前及时续签,避免HTTPS访问失效,可设置日历提醒或自动续签脚本;
- 初始化时设置强密码,定期备份配置文件,确保服务稳定运行;
- 后续可逐步拓展功能,如配置多模型、对接IM工具、安装插件,充分发挥OpenClaw的自动化能力。
通过本文步骤,你可以轻松实现OpenClaw的Docker容器化部署,结合HTTPS加密与域名绑定,打造安全、稳定、可公网访问的AI自动化助手,无论是个人办公自动化,还是轻量团队协作,都能大幅提升效率,解锁AI赋能的全新体验。