You need to enable JavaScript to run this app. 树莓派Rootless Docker如何参照Rootful apt方式升级自身版本
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Rootless Docker如何参照Rootful apt方式升级自身版本

Rootless Docker 升级可行性与具体实现方法

首先明确结论:完全可以实现和Rootful Docker接近的升级体验,不存在Rootless模式就无法平滑升级的问题,只是因为两者的部署路径、包管理纳入范围不同,原生没有适配默认的APT自动更新流程,根据实际部署场景对应操作即可。

为什么Rootful可以直接apt升级、Rootless一开始不行

Rootful Docker的引擎、CLI组件默认部署在系统级路径(/usr/bin、/var/lib/docker),完全被Debian/Ubuntu的APT包管理体系收录,所以执行sudo apt update && sudo apt upgrade的时候,会自动拉取对应源里的Docker最新版本完成升级,也能直接对接系统的unattended-upgrades自动升级机制。
而默认安装的Rootless Docker,会把运行时配置、部分组件放到当前普通用户的家目录下,不纳入系统级包管理的扫描范围,所以没有直接走apt升级的默认流程。

分场景对应升级方法

场景1:通过官方APT源安装Docker后启用Rootless模式

这是和你之前用Rootful体验最接近的场景——如果你当初是先通过Docker官方APT源装好docker-ce、docker-ce-cli的系统包,之后再通过dockerd-rootless-setuptool.sh install在普通用户下启用了Rootless模式,那么升级操作和Rootful完全一致:

  • 直接在宿主机执行系统级升级命令即可:
    sudo apt update
    sudo apt upgrade docker-ce docker-ce-cli
    
  • 升级完成后,不需要重新执行Rootless安装流程,只需要在对应的普通用户下重启用户级的Docker服务就能加载新版引擎:
    systemctl --user restart docker
    
    这种场景下甚至可以直接配置unattended-upgrades把docker-ce相关的包纳入自动升级范围,后续的升级逻辑和你之前用Rootful没有任何区别。

场景2:通过一键脚本/手动二进制部署的Rootless Docker

如果你当初是通过get-docker.sh的rootless一键参数、或者手动下载二进制包部署的Rootless Docker,这类部署的二进制本体都在用户家目录的~/.docker/bin路径下,没有被系统APT管理,升级方法如下:

  • 手动升级:直接重新执行一遍当初的Rootless安装脚本即可。脚本会自动检测现有Rootless部署的配置,替换对应路径下的二进制文件、同步更新用户级systemd服务的配置,不会清空你已有的容器、镜像存储,整个操作的体感和Rootful的apt升级基本一致。
  • 自动升级:可以通过用户级systemd定时器定期触发升级脚本,实现类似unattended-upgrades的无人值守升级效果,不需要依赖系统级的APT包管理。

升级注意事项

  • 不要跨大版本跳过升级:和Rootful一样,Rootless Docker的引擎也需要按版本顺序升级,跨几个大版本直接跳最新版可能出现存储驱动兼容问题。
  • 升级后可通过docker version命令验证服务端版本号,确认升级生效即可,不需要额外修改Rootless的权限、网络配置。
  • 不要混用系统包安装的二进制和用户目录下的手动部署二进制,否则会出现版本不匹配、服务无法启动的问题。

内容的提问来源于stack exchange,提问作者schklom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.02 04:57:03