OpenClaw Docker 部署极速升级指南(国内镜像加速版)

0 阅读4分钟

告别十几个小时的慢速拉取,3分钟完成版本更新


⚠️ 特别说明:Docker 部署无法通过网页界面升级

OpenClaw 的 Web 界面中的 “Update now” 按钮仅适用于 npm/源码安装方式。

如果你是通过 Docker 部署的(无论是直接用 docker run 还是 docker-compose),点击按钮无效是正常现象。这是因为 Docker 容器的更新需要拉取新镜像并重建容器,而 Web 界面触发的命令是针对宿主机环境的。

Docker 部署的正确升级方式:只能通过命令行操作。


问题背景

OpenClaw 的 Docker 镜像托管在 GitHub Container Registry(ghcr.io),国内服务器拉取速度极慢,首次安装可能耗时十几个小时。

配置 Docker Hub 镜像加速(阿里云、中科大等)ghcr.io 无效,因为加速器只加速 Docker Hub。


解决方案

使用国内 ghcr.io 镜像站(南京大学镜像)进行拉取,速度可达 10-50 MB/s,几分钟即可完成。


极速升级步骤(命令行操作)

第一步:拉取最新镜像(从国内镜像站)

docker pull ghcr.nju.edu.cn/openclaw/openclaw:latest

速度很快,通常 1-3 分钟完成。


第二步:打标签(让本地配置能识别)

docker tag ghcr.nju.edu.cn/openclaw/openclaw:latest ghcr.io/openclaw/openclaw:latest

这一步将国内镜像站的镜像“重命名”为官方镜像的名称,这样你的 docker-compose.yml 不需要做任何修改。


第三步:重建并重启容器

cd /opt/openclaw
docker compose up -d

Docker Compose 会发现本地已存在最新镜像,直接使用它重建容器,不会再去慢速的官方源拉取


第四步:验证升级

# 查看容器状态
docker compose ps

# 查看日志确认无报错
docker compose logs --tail=30

刷新浏览器页面,版本号已更新,更新提示消失。


完整升级命令(一键复制)

# 1. 拉取(国内镜像站)
docker pull ghcr.nju.edu.cn/openclaw/openclaw:latest

# 2. 打标签
docker tag ghcr.nju.edu.cn/openclaw/openclaw:latest ghcr.io/openclaw/openclaw:latest

# 3. 重建容器
cd /opt/openclaw && docker compose up -d

# 4. 查看日志
docker compose logs --tail=30

原理说明

步骤作用
docker pull ghcr.nju.edu.cn/...从国内镜像站高速下载(避开 ghcr.io 慢速)
docker tag ... ghcr.io/...重命名镜像,让 docker-compose.yml 能找到
docker compose up -d重建容器,使用本地已有镜像

其他可用的国内 ghcr.io 镜像站

如果南京大学镜像不可用,可以尝试以下备选:

镜像站地址说明
上海交大ghcr.mirrors.sjtug.sjtu.edu.cn教育网友好
中科院ghcr.io.mirrors.ustc.edu.cn需确认可用性

使用示例:

docker pull ghcr.mirrors.sjtug.sjtu.edu.cn/openclaw/openclaw:latest
docker tag ... # 同上

注意事项

  1. 镜像同步延迟:国内镜像站通常每 10-30 分钟同步一次官方仓库,latest 标签可能比官方延迟最多 1 小时,不影响日常使用。

  2. 首次安装也适用:这个方法同样适用于首次安装,不必等十几个小时。

  3. 配置文件无需修改:全程不需要修改 docker-compose.yml,保持 image: ghcr.io/openclaw/openclaw:latest 即可。

  4. 以后每次更新都用这个流程:看到 Web 界面提示 "Update available",不要点击按钮,按上述三步命令行操作即可。


常见问题

Q:为什么不能点击 Web 界面的 "Update now" 按钮?

A:Docker 部署的 OpenClaw 运行在容器内,Web 界面触发的更新命令(如 npm updategit pull)是针对宿主机文件系统的,容器内无法执行,也无法修改只读的容器文件系统。所以点击按钮会无效或报错。

Q:拉取时提示 unauthorized404

A:镜像站可能暂时不可用,换一个备选镜像站重试。

Q:docker compose up -d 后还是慢速拉取?

A:说明本地没有正确的标签镜像,检查第二步 docker tag 是否执行成功:

docker images | grep openclaw

应该看到两条记录,一条来自 ghcr.nju.edu.cn,一条来自 ghcr.io,且 IMAGE ID 相同。

Q:如何确认升级成功?

A:浏览器登录 OpenClaw,查看页面右下角或设置中的版本号,更新提示消失即表示成功。


总结

安装方式升级方式Web 界面按钮是否有效
npm/源码安装openclaw update✅ 有效
Docker 部署命令行:docker pull + docker tag + docker compose up -d❌ 无效

Docker 部署用户请记住:升级只能通过命令行完成,网页按钮对你无效。

保存这个流程,以后每次更新 3 分钟搞定! 🚀