专属
文档
插件
助手
邀请
顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单

文档

工具

功能
提交工单页面收录

帮助
轩辕镜像免费版

其他
关于我们网站地图
热门搜索:
shepherd

containrrr/shepherd

containrrr

Shepherd是一个Docker Swarm服务,用于在基础镜像更新时自动更新您的服务,支持定时检查、服务过滤、私有仓库认证、失败回滚等功能,简化Swarm环境中的服务更新流程。

4 次收藏下载次数: 0状态:社区镜像维护者:containrrr仓库类型:镜像最近更新:7 个月前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

使用轩辕镜像,把时间还给真正重要的事。点击查看
中文简介
标签列表
镜像标签列表与下载命令
使用轩辕镜像,把时间还给真正重要的事。点击查看

Shepherd

镜像概述和主要用途

Shepherd是一个Docker Swarm服务,旨在当服务的基础镜像更新时自动更新您的Swarm服务。它通过定时检查镜像版本,触发Docker Swarm的原生更新机制,减少手动操作,确保服务始终使用最新的基础镜像,适用于需要自动维护服务更新的Swarm集群环境。

核心功能和特性

  • 自动更新服务:检测到基础镜像更新时,自动触发Swarm服务更新
  • 定时检查:默认每5分钟检查一次镜像更新,可通过SLEEP_TIME调整间隔
  • 服务过滤控制:支持通过FILTER_SERVICES指定更新服务,或IGNORELIST_SERVICES忽略特定服务
  • 失败回滚机制:设置ROLLBACK_ON_FAILURE可在更新失败时回滚到上一版本
  • 私有仓库支持:支持私有仓库认证,可通过环境变量或secret文件配置多仓库认证信息
  • 更新参数自定义:通过UPDATE_OPTIONS和ROLLBACK_OPTIONS控制服务更新和回滚的额外参数
  • 通知集成:可与apprise微服务集成,实现服务更新通知
  • 镜像自动清理:设置IMAGE_AUTOCLEAN_LIMIT可自动清理旧镜像
  • 单次运行模式:支持RUN_ONCE_AND_EXIT单次检查后退出,适合与cron调度工具配合使用

使用场景和适用范围

  • Docker Swarm集群中需要自动维护服务更新的场景
  • CI/CD流程中,基础镜像构建完成后自动部署到Swarm服务
  • 需要定时检查并更新服务以保持基础镜像最新的环境
  • 希望减少手动执行docker service update操作的运维场景
  • 需要对服务更新进行精细化控制(如指定更新间隔、忽略特定服务、配置回滚策略)的环境

使用方法和配置说明

基本部署方式

使用docker service create部署

shell
docker service create --name shepherd \
                      --constraint "node.role==manager" \
                      --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock,ro \
                      containrrr/shepherd

使用Docker Compose部署

yaml
version: "3"
services:
  shepherd:
    image: containrrr/shepherd
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    deploy:
      placement:
        constraints:
          - node.role == manager

更多示例配置可参考项目中的docker-compose.yml和examples文件夹。

配置参数详解

Shepherd通过环境变量进行配置,主要参数如下:

环境变量描述默认值
SLEEP_TIME镜像更新检查间隔时间(格式如"5m"表示5分钟)"5m"
IGNORELIST_SERVICES不需要更新的服务名称列表(空格分隔)无
FILTER_SERVICES需要更新的服务过滤条件(符合docker service ls的过滤格式)无
ROLLBACK_ON_FAILURE更新失败时是否回滚到上一版本(设置为"true"启用)无
UPDATE_OPTIONSdocker service update命令的额外参数(如"--update-delay=30s")无
ROLLBACK_OPTIONSdocker service update --rollback命令的额外参数无
TIMEOUT服务更新操作超时时间(默认5分钟)"5m"
WITH_REGISTRY_AUTH是否启用私有仓库认证(设置为"true"启用)无
REGISTRY_USER私有仓库用户名无
REGISTRY_PASSWORD私有仓库密码(或使用名为shepherd_registry_password的docker secret)无
REGISTRY_HOST私有仓库主机名(非Docker Hub时需设置)无
REGISTRIES_FILE多仓库认证信息的secret文件路径无
WITH_INSECURE_REGISTRY允许连接不安全的私有仓库(设置为"true"启用)无
WITH_NO_RESOLVE_IMAGE禁止从仓库拉取镜像(设置为"true"启用)无
APPRISE_SIDECAR_URLapprise微服务URL,用于发送服务更新通知无
IMAGE_AUTOCLEAN_LIMIT服务更新时自动清理旧镜像,值为保留的旧镜像数量无
RUN_ONCE_AND_EXIT单次检查后退出(设置为"true"启用)无
TZ日志时区(如"Europe/Berlin")无

高级配置示例

带环境变量的完整部署示例

shell
docker service create --name shepherd \
                      --constraint "node.role==manager" \
                      --env SLEEP_TIME="5m" \
                      --env IGNORELIST_SERVICES="shepherd my-other-service" \
                      --env WITH_REGISTRY_AUTH="true" \
                      --env WITH_INSECURE_REGISTRY="true" \
                      --env WITH_NO_RESOLVE_IMAGE="true" \
                      --env FILTER_SERVICES="label=com.mydomain.autodeploy" \
                      --env APPRISE_SIDECAR_URL="apprise-microservice:5000" \
                      --env IMAGE_AUTOCLEAN_LIMIT="5" \
                      --env RUN_ONCE_AND_EXIT="true" \
                      --env ROLLBACK_ON_FAILURE="true" \
                      --env UPDATE_OPTIONS="--update-delay=30s" \
                      --env TZ=Europe/Berlin \
                      --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock,ro \
                      --mount type=bind,source=/root/.docker/config.json,target=/root/.docker/config.json,ro \
                      containrrr/shepherd

注意:上述命令中的引号由shell解析,不属于环境变量值的一部分。

多私有仓库认证配置

  1. 创建认证信息文件(制表符分隔,包含id、registry、login、password):

    blog	registry.gitlab.com	gitlab+deploy-token-5123674	ssw2Nrd2
    
  2. 创建Docker secret:

    shell
    docker secret create shepherd-registries-auth private/shepherd-registries-auth
    
  3. 在Docker Compose中配置Shepherd:

    yaml
    services:
      shepherd:
        image: containrrr/shepherd
        environment:
          REGISTRIES_FILE: /var/run/secrets/shepherd-registries-auth
        secrets:
          - shepherd-registries-auth
        deploy:
          placement:
            constraints:
              - node.role == manager
    secrets:
      shepherd-registries-auth:
        external: true
    
  4. 在目标服务上添加标签指定认证id:

    yaml
    deploy:
      labels:
        - shepherd.enable=true
        - shepherd.auth.config=blog
    

运行在cron调度上

使用默认SLEEP_TIME时运行时间会漂移,如需固定调度,建议与https://github.com/crazy-max/swarm-cronjob%E9%85%8D%E5%90%88%EF%BC%9A

  1. 按照swarm-cronjob文档创建cron服务。
  2. 配置Shepherd:
    • 设置RUN_ONCE_AND_EXIT=true
    • replicas=0
    • restart_policy: condition: none
    • 添加swarm-cronjob调度标签

示例配置可参考docker-compose.swarm-cronjob.yml。

工作原理

Shepherd通过更新服务的镜像规范(移除当前摘要)触发更新。Docker会自动处理:

  1. 解析镜像标签并检查仓库中的最新版本
  2. 根据Swarm服务配置执行滚动更新(如副本数、更新延迟等)
  3. 维护服务可用性,对于复制服务通常无明显downtime

大部分更新逻辑依赖Docker原生功能,Shepherd主要负责定时触发检查和更新操作。

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 shepherd 镜像标签

docker pull docker.xuanyuan.run/containrrr/shepherd:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull containrrr/shepherd:<标签>

更多 shepherd 镜像推荐

mazzolino/shepherd logo

mazzolino/shepherd

mazzolino
用于在基础镜像更新时自动更新Docker Swarm服务的服务
26 次收藏1亿+ 次下载
2 年前更新
tusharfloyd/shepherd logo

tusharfloyd/shepherd

tusharfloyd
暂无描述
10万+ 次下载
6 年前更新
oldwebtoday/shepherd logo

oldwebtoday/shepherd

oldwebtoday
Shepherd是用于配置和启动Docker容器集群(flocks)的系统,支持YAML定义集群环境、卷和外部网络,提供API管理集群实例的启停等操作,支持用户覆盖配置、多池管理、队列调度及持久池执行时间切片功能。
1 次收藏10万+ 次下载
5 年前更新
chickenzord/shepherd logo

chickenzord/shepherd

chickenzord
这是一个Rancher服务监控工具,可监控Rancher服务状态并通过Slack频道发送通知,需配置Rancher访问密钥、Slack Token等环境变量使用。
5万+ 次下载
9 年前更新
mathieu49/shepherd logo

mathieu49/shepherd

mathieu49
暂无描述
1万+ 次下载
8 年前更新
tons/shepherd logo

tons/shepherd

tons
Docker Swarm服务,可在基础镜像刷新时自动更新你的服务,简化容器服务的维护流程。
1万+ 次下载
7 年前更新

查看更多 shepherd 相关镜像

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题 Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
containrrr/shepherd
教程轩辕镜像功能与使用教程
价格查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
官方公众号:源码跳动|官方技术交流群:831623681
官方公众号:源码跳动|官方技术交流群:|问题咨询请:提交工单
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.