Skip to content

检测与升级 DPanel Version >= 1.4.2

容器详情页面可查看当前容器是否有更新及升级容器。 升级操作会保留当前容器的全部配置,并重新拉取镜像重新部署容器。

TIP

多服务端下,请确保每个服务端的版本一致,否则可能产生不兼容情况导致升级失败。

container-upgrade-1

检测策略

为避免过于频繁请求外部接口,检测容器升级时可配置【检测策略】:

  • 自动检测:每次进入容器详情页面时都会检测更新,可跳过缓存强制检测一次。
  • 忽略本次:容器当前使用的镜像未改变时,会忽略检测。
  • 永久忽略:忽略当前容器,其他使用同镜像的容器不受影响。

镜像更新检测逻辑

Digest

镜像的 digest 值是标识镜像在远程仓库中的唯一标识,面板通过此值检测镜像更新。 如镜像不包含 digest 值,则无法检测更新。

对于支持不同架构平台的镜像,即使只有一个平台发生变化,也会导致 digest 值变化,从而检测出更新。

使用面板仓库加速地址拉取的镜像,其 digest 值属于加速标签,删除此标签后将无法检测更新。

命名规范

镜像名如 dpanel/dpanel:latestdpanel/dpanel:lite 等,冒号(:)后面的部分称为 Tag,用于标识镜像的版本(digest)。

通常 tag 的构成有以下几种情况:

类型示例
固定标识dpanel/dpanel:litenginx:latestnginx:mainline
大版本号dpanel/dpanel:1 nginx:1.27
小版本号dpanel/dpanel:1.4.0-litenginx:1.27.3
根据发行时间minio/minio:RELEASE.2024-10-02T17-50-41Z

镜像发布时,会从大到小依次覆盖 Tag。例如 nginx 发布 1.27.4 时,会同时推送至 nginx:1.27nginx:latestnginx:mainlinenginx:1.27.4 等,小版本 nginx:1.27.3 则不会被覆盖。

检测更新

  • 当你使用 nginx:latest 创建容器后,当 nginx 有更新推送可以检测出更新。
  • 当你使用 nginx:1.27 创建容器后,仅当 nginx 发布 1.27.* 相关版本时会检测出更新。
  • 当你使用 nginx:1.27.3 创建容器后,通常情况下无法检测出更新。

在创建容器时,需要根据自身情况,选择合适的镜像 Tag 以确保可以正常使用【快速升级容器】功能。

更新回退

DPanel 更新容器时,会停止旧容器并重命名为【容器名-更新时间】,旧镜像也会重命名为【镜像名称-更新时间】。 更新容器后,可重新启动旧容器以完成更新回退。