portainer/portainer-updaterPortainer Updater 是一款用于自动更新 Portainer 软件的工具镜像。它能够监控 Portainer 版本更新,自动检测新版本发布,下载并更新 Portainer 容器,同时确保数据卷和配置文件的安全性。该工具旨在简化 Portainer 的维护流程,适用于需要保持 Portainer 最新状态以获取安全补丁、功能更新的个人或企业环境。
/data),确保配置和数据不丢失。portainer/portainer-ce 或 portainer/portainer-be)。/var/run/docker.sock)。直接通过 docker run 启动 Portainer Updater 容器,示例如下:
bashdocker run -d \ --name portainer-updater \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ # 必需,用于操作 Docker 容器 -e PORTAINER_CONTAINER_NAME="portainer" \ # 目标 Portainer 容器名称(必填) -e CHECK_INTERVAL="24h" \ # 检查更新间隔(默认 24h) -e UPDATE_STRATEGY="all" \ # 更新策略(all/main/minor/patch) portainer/portainer-updater:latest
创建 docker-compose.yml 文件,示例如下:
yamlversion: '3.8' services: portainer-updater: image: portainer/portainer-updater:latest container_name: portainer-updater restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - PORTAINER_CONTAINER_NAME=portainer # 目标 Portainer 容器名称 - CHECK_INTERVAL=12h # 每 12 小时检查一次更新 - UPDATE_ONLY_SECURE=true # 仅更新安全补丁版本 - LOG_LEVEL=info # 日志级别(debug/info/warn/error) - NOTIFY_WEBHOOK=[***] # 更新完成后触发的 Webhook
Portainer Updater 通过环境变量控制行为,支持以下参数:
| 环境变量名 | 描述 | 默认值 | 是否必填 |
|---|---|---|---|
PORTAINER_CONTAINER_NAME | 目标 Portainer 容器名称(需与实际运行容器名称一致) | portainer | 否 |
PORTAINER_IMAGE | Portainer 镜像名称(CE: portainer/portainer-ce;BE: portainer/portainer-be) | portainer/portainer-ce | 否 |
CHECK_INTERVAL | 检查更新的时间间隔(支持 h/m/s,如 24h、30m) | 24h | 否 |
UPDATE_STRATEGY | 更新策略:all(所有版本)、major(主版本)、minor(次版本)、patch(补丁) | all | 否 |
UPDATE_ONLY_SECURE | 是否仅更新安全相关版本(依赖 Portainer 官方安全公告) | false | 否 |
SKIP_CONFIRM | 是否跳过更新确认(直接执行更新) | true | 否 |
LOG_LEVEL | 日志级别:debug/info/warn/error | info | 否 |
NOTIFY_WEBHOOK | 更新成功/失败后触发的 Webhook URL(支持 JSON payload) | 无 | 否 |
DOCKER_HOST | Docker 守护进程地址(默认本地 unix:///var/run/docker.sock) | unix:///var/run/docker.sock | 否 |
CHECK_INTERVAL 定期请求 Portainer 官方仓库(Docker Hub 或 GitHub Release),获取最新版本号。UPDATE_STRATEGY 判断是否需要更新(如主版本 2.x → 3.x,或补丁版本 2.18.1 → 2.18.2)。NOTIFY_WEBHOOK 发送通知(如状态码、日志摘要)。/var/lib/docker/volumes/portainer_data)。PORTAINER_CONTAINER_NAME 必须与实际运行的 Portainer 容器名称一致,否则无法识别目标容器。bashdocker run -d \ --name portainer-updater \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ portainer/portainer-updater:latest
yaml# docker-compose.yml version: '3.8' services: portainer-updater: image: portainer/portainer-updater:latest container_name: portainer-updater restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - PORTAINER_CONTAINER_NAME=my-portainer # 假设 Portainer 容器名为 "my-portainer" - PORTAINER_IMAGE=portainer/portainer-be # Business Edition - CHECK_INTERVAL=12h # 每 12 小时检查一次 - UPDATE_STRATEGY=minor # 仅更新次版本(如 2.18.x → 2.19.x) - NOTIFY_WEBHOOK=[***] # Slack 通知 - LOG_LEVEL=debug # 输出详细日志用于调试
bashdocker run -d \ --name portainer-updater-secure \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -e UPDATE_ONLY_SECURE=true \ -e CHECK_INTERVAL=6h \ # 每 6 小时检查安全更新 portainer/portainer-updater:latest
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务