Skip to content

容器更新 DPanel Version >= 1.11.2 ​

更新容器时,面板会重新拉取镜像,沿用原有配置重建容器;是否保留旧容器取决于备份选项。若拉取后的镜像未变化,则相当于使用原镜像重建。

你可以在 容器详情 中检测和更新单个容器,也可以在 容器更新 页面中批量检测和更新多个容器。

更新容器 ​

container-upgrade-1

批量更新 ​

container-upgrade-2

检测缓存 ​

容器的更新检测统一归入 容器更新 功能。面板会记录每个容器的检测时间、状态及错误信息。

为避免频繁请求远程仓库,打开或刷新 容器详情 时会复用 10 分钟内的检测结果,超过 10 分钟则重新检测。容器更新 的批量检测则只在手动检测后刷新检测结果。

忽略检测 ​

使用本地镜像或不想更新的容器,可设置 检测忽略,支持以下两种模式。在 容器详情 中手动检测,可取消该容器的忽略设置。

  • 忽略当前版本:仅忽略容器当前使用的镜像版本;容器镜像变化后可重新检查。
  • 永久忽略:始终忽略当前容器,其他使用相同镜像的容器不受影响。

检测原理 ​

Digest 是镜像内容的摘要,面板通过比较本地与远程 Digest 检测更新。本地同名 Tag 已指向其他镜像时,也会提示更新。

多架构镜像的整体 Digest 可能因其他架构变化而改变,因此当前架构未变化时,也可能提示更新。

删除加速标签导致本地摘要丢失后,仍可尝试使用容器中保存的历史摘要检测。

直接使用固定镜像 ID 或 镜像名@sha256:… 创建的容器不支持检测更新。

判定机制 ​

本地同名 Tag 已指向其他镜像时,直接提示更新;否则查询远程摘要。本地摘要缺失时,尝试使用容器保存的历史摘要。

情况判断结果
本地同名 Tag 指向的镜像与容器当前使用的镜像不同有更新,不再查询远程
远程 Digest 匹配任意本地或历史摘要暂无更新
远程 Digest 与已有摘要均不匹配有更新
本地和历史摘要都缺失,但成功取得远程镜像清单有更新,即使远程未返回 Digest
远程镜像清单不存在,或已有摘要但远程未返回 Digest无法检测
网络、认证等查询错误检测失败

命名规范 ​

镜像名中冒号后的部分称为 Tag(标签),如 dpanel/dpanel:latest 中的 latest。Tag 表示版本或发行类型,同一 Tag 可指向不同的镜像内容。

常见的 Tag 命名方式如下:

类型示例
固定标识dpanel/dpanel:lite、nginx:latest、nginx:mainline
版本系列dpanel/dpanel:1、nginx:1.27
具体版本dpanel/dpanel:1.4.0-lite、nginx:1.27.3
发行时间minio/minio:RELEASE.2024-10-02T17-50-41Z

Tag 是否更新取决于发布者。面板只检查当前 Tag 对应的镜像,不比较版本号大小,也不自动切换 Tag。

更新回退 ​

更新时勾选 更新前备份旧容器,才会保留名为 容器名-bak-时间 的备份容器;默认不保留。 回退时,先停止新容器,再启动备份容器;挂载数据不会随之恢复。