
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
自动更新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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务