
自动更新Docker服务,当它们的镜像被更新时。灵感来自https://github.com/v2tec/watchtower
Swarm Updater是一个用于Docker Swarm环境的自动更新工具,能够在服务镜像更新时自动更新相应的Docker服务。它提供了灵活的配置选项,支持定时检查、按需更新以及私有仓库认证等功能,适用于需要自动化服务部署和更新的场景。
可通过调用API端点/apis/swarm/v1/update触发指定镜像的服务更新,请求体示例:
json{ "images": [ "mycompany/myapp" ] }
所有命令行选项都有对应的环境变量可供配置:
| 命令行选项 | 环境变量 | 描述 | 默认值 |
|---|---|---|---|
--host, -H | DOCKER_HOST | Docker守护进程套接字 | unix:///var/run/docker.sock |
--config, -c | DOCKER_CONFIG | Docker客户端配置路径 | ~/.docker |
--schedule, -s | SCHEDULE | 检查更新的Cron表达式(6字段) | 1小时 |
--label-enable, -l | LABEL_ENABLE | 仅监控带xyz.megpoid.swarm-updater.enable=true标签的服务 | - |
--blacklist, -b | BLACKLIST | 排除更新的服务(可正则,逗号分隔) | - |
--tlsverify, -t | DOCKER_TLS_VERIFY | 使用TLS并验证服务器证书 | - |
--debug, -d | DEBUG | 启用调试日志 | - |
--listen, -a | LISTEN | 监听更新请求的地址 | - |
--apikey, -k | APIKEY | 保护更新端点的密钥 | - |
--help, -h | - | 显示帮助文档 | - |
注意:
--label-enable和--blacklist不能同时使用
DOCKER_API_VERSION:设置Docker API版本,留空则使用应用所需的最低版本DOCKER_CERT_PATH:TLS证书目录,当--host为TCP端点时使用需在配置目录(默认~/.docker)下放置config.json文件,包含私有仓库凭据。可通过docker login <registry>命令生成该文件。
延迟自身更新
为swarm-updater服务添加标签xyz.megpoid.swarm-updater=true,使其成为最后更新的服务:
bashdocker service create --label xyz.megpoid.swarm-updater=true ... swarm-updater-image
仅更新镜像不运行容器
为服务添加标签xyz.megpoid.swarm-updater.update-only=true,仅更新镜像而不运行容器:
bashdocker service create --label xyz.megpoid.swarm-updater.update-only=true ... your-service-image
注意:该标签会将服务副本数设置为0,对全局复制模式无效
基本部署(定时检查)
bashdocker service create \ --name swarm-updater \ --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ --env SCHEDULE="0 0 */4 * * *" \ # 每4小时检查一次 --env LABEL_ENABLE=1 \ # 仅更新带指定标签的服务 swarm-updater-image
带API端点和密钥的部署
bashdocker service create \ --name swarm-updater \ --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ --mount type=bind,source=$HOME/.docker,target=/root/.docker \ # 私有仓库配置 --env LISTEN=0.0.0.0:8080 \ # 监听所有地址的8080端口 --env APIKEY=your-secure-key \ # 设置API密钥 --publish 8080:8080 \ swarm-updater-image
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务