检测与升级 DPanel Version >= 1.4.2
容器详情页面可查看当前容器是否有更新及升级容器。 升级操作会保留当前容器的全部配置,并重新拉取镜像重新部署容器。
TIP
多服务端下,请确保每个服务端的版本一致,否则可能产生不兼容情况导致升级失败。

检测策略
为避免过于频繁请求外部接口,检测容器升级时可配置【检测策略】:
- 自动检测:每次进入容器详情页面时都会检测更新,可跳过缓存强制检测一次。
- 忽略本次:容器当前使用的镜像未改变时,会忽略检测。
- 永久忽略:忽略当前容器,其他使用同镜像的容器不受影响。
镜像更新检测逻辑
Digest
镜像的 digest 值是标识镜像在远程仓库中的唯一标识,面板通过此值检测镜像更新。 如镜像不包含 digest 值,则无法检测更新。
对于支持不同架构平台的镜像,即使只有一个平台发生变化,也会导致 digest 值变化,从而检测出更新。
使用面板仓库加速地址拉取的镜像,其 digest 值属于加速标签,删除此标签后将无法检测更新。
命名规范
镜像名如 dpanel/dpanel:latest、dpanel/dpanel:lite 等,冒号(:)后面的部分称为 Tag,用于标识镜像的版本(digest)。
通常 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。例如 nginx 发布 1.27.4 时,会同时推送至 nginx:1.27、nginx:latest、nginx:mainline、nginx:1.27.4 等,小版本 nginx:1.27.3 则不会被覆盖。
检测更新
- 当你使用 nginx:latest 创建容器后,当 nginx 有更新推送可以检测出更新。
- 当你使用 nginx:1.27 创建容器后,仅当 nginx 发布 1.27.* 相关版本时会检测出更新。
- 当你使用 nginx:1.27.3 创建容器后,通常情况下无法检测出更新。
在创建容器时,需要根据自身情况,选择合适的镜像 Tag 以确保可以正常使用【快速升级容器】功能。
更新回退
DPanel 更新容器时,会停止旧容器并重命名为【容器名-更新时间】,旧镜像也会重命名为【镜像名称-更新时间】。 更新容器后,可重新启动旧容器以完成更新回退。
