Ubuntu 18.04系统中apt-mark showhold显示已更新的docker-ce和docker-ce-cli为保留包的原因及清理方法
Ubuntu 18.04系统中apt-mark showhold显示已更新的docker-ce和docker-ce-cli为保留包的原因及清理方法
我完全理解你的疑惑——明明这两个Docker包已经是最新版本了,apt-mark showhold却还把它们列在保留列表里,这确实有点让人摸不着头脑。下面给你拆解原因和解决办法:
为什么会出现这种情况?
保留包(hold)的标记和包是否是最新版本没有直接关联,它只是一个阻止包被自动升级的状态标记,常见原因有两种:
- 手动设置过保留:你(或者之前维护这个服务器的人)可能曾经执行过
sudo apt-mark hold docker-ce docker-ce-cli命令,目的是防止Docker自动更新——毕竟Docker版本更新有时会带来兼容性问题,比如现有容器可能无法在新版本里正常运行,很多运维同学都会选择锁住稳定版本。这个标记一旦设置,哪怕包已经是最新的,也会一直存在,除非手动取消。 - 安装脚本自动设置:Docker官方的安装脚本(比如你添加Docker源后用
apt install安装时),有些场景下会自动给docker-ce和docker-ce-cli加上保留标记,避免后续系统更新时意外升级Docker,导致服务中断。
怎么清理这个保留标记?
取消保留非常简单,只需执行以下命令即可:
sudo apt-mark unhold docker-ce docker-ce-cli
执行后会收到类似如下的提示,说明保留标记已经取消:
Canceled hold on docker-ce. Canceled hold on docker-ce-cli.
验证是否取消成功
你可以再次运行命令确认:
sudo apt-mark showhold
如果输出为空,就说明这两个包的保留状态已经完全清除了,后续系统更新时如果有Docker新版本,它们就会被自动升级(当然如果你之后想再次锁住版本,还是可以用sudo apt-mark hold docker-ce docker-ce-cli重新设置)。
备注:内容来源于stack exchange,提问作者s.k
相关产品推荐
相关产品推荐

