本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

swarm-cronjob是一款专为Docker Swarm集群设计的定时任务调度工具镜像,旨在解决Swarm原生缺乏时间驱动任务调度能力的问题。该镜像允许用户通过标准cron表达式定义定时规则,在Swarm集群中创建、运行和管理定时任务,支持与Swarm服务无缝集成,实现任务的自动化调度与生命周期管理。
通过docker service create直接部署到Swarm集群:
docker service create \ --name swarm-cronjob \ --constraint "node.role == manager" \ # 仅在管理节点运行 --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ # 挂载Docker Socket --env "LOG_LEVEL=info" \ # 日志级别(debug/info/warn/error) --env "TZ=Asia/Shanghai" \ # 时区配置 crazy-max/swarm-cronjob
创建docker-compose.yml文件,通过docker stack deploy部署:
version: '3.8' services: swarm-cronjob: image: crazy-max/swarm-cronjob volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # 只读挂载Docker Socket environment: - LOG_LEVEL=info - TZ=Asia/Shanghai - CHECK_INTERVAL=60s # 任务状态检查间隔(默认60秒) deploy: placement: constraints: - node.role == manager # 限制在管理节点运行 resources: limits: cpus: '0.5' memory: 128M
部署命令:
docker stack deploy -c docker-compose.yml swarm-cronjob
通过Docker Config或本地文件定义定时任务,配置文件格式为YAML,示例(jobs.yaml):
jobs: - name: "daily-backup" # 任务名称(唯一) schedule: "0 3 * * *" # 每天凌晨3点执行(cron表达式) job: image: "busybox:latest" command: ["sh", "-c", "echo 'Performing daily backup...' && sleep 30"] deploy: replicas: 1 restart_policy: condition: none # 任务完成后不重启 - name: "hourly-cleanup" schedule: "0 * * * *" # 每小时执行一次 job: image: "alpine:latest" command: ["rm", "-rf", "/tmp/*"] deploy: placement: constraints: - node.labels.env == "prod" # 仅在prod标签节点执行
挂载配置文件到容器(修改docker-compose.yml):
volumes: - ./jobs.yaml:/etc/swarm-cronjob/jobs.yaml:ro # 挂载任务配置文件
| 环境变量 | 描述 | 默认值 |
|---|---|---|
LOG_LEVEL | 日志输出级别 | info |
LOG_JSON | 是否启用JSON格式日志 | false |
TZ | 时区设置 | UTC |
CHECK_INTERVAL | 任务状态检查间隔 | 60s |
MAX_PARALLEL_JOBS | 最大并行任务数 | 0(无限制) |
JOB_CONFIG_PATH | 任务配置文件路径 | /etc/swarm-cronjob/jobs.yaml |
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429