docker-cron 是一个轻量级定时任务容器,通过环境变量配置定时任务,内置 curl 和 Docker 客户端工具,专为 docker-compose 环境设计。主要用于在容器化架构中执行周期性任务,如API调用、数据备份、跨容器操作等。
curl(用于HTTP请求)和 Docker 客户端(用于操作其他容器),满足常见任务需求。docker.sock 与宿主机Docker守护进程通信,可执行 docker exec 等命令操作其他容器。docker-compose 架构,资源占用低,部署便捷。root),适配多场景需求。curl 定时触发后端服务接口(如数据同步、状态检查)。rsync、tar 等命令定期备份数据目录。docker exec 在其他容器内执行脚本(如数据库备份、日志清理)。docker-compose 进行容器编排,简化依赖管理。定时任务通过环境变量定义,每个任务以 CRON_ 为前缀命名,格式如下:
bashCRON_<任务名>=<cron表达式> <执行用户> <命令>
<任务名>:自定义标识(如 API_CALL、BACKUP),仅用于区分任务,无特殊格式要求。<cron表达式>:标准Cron时间格式,字段含义为 分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-6, 0=周日)(如 0 3 * * * 表示每天凌晨3点执行)。<执行用户>:任务执行的Linux用户(如 root、www-data)。<命令>:需执行的具体命令(如 curl [***]、docker exec app /backup.sh)。若任务中需使用 docker 命令(如 docker exec),必须将宿主机的 docker.sock 挂载到容器内,以实现与Docker守护进程的通信。挂载路径固定为 /var/run/docker.sock。
在 docker-compose.yml 中集成:
yamlversion: '3' services: cron: image: whefter/cron restart: always # 确保容器持续运行 network_mode: none # 非必要时禁用网络,最小化暴露 volumes: - "/var/run/docker.sock:/var/run/docker.sock" # 挂载Docker守护进程通信接口 - "/opt:/opt" # 可选:挂载宿主机目录(如备份源路径) - "/mnt/backup:/mnt/backup" # 可选:挂载备份目标路径 environment: # 示例1:每天凌晨3点以root用户调用API - "CRON_API_CALL=0 3 * * * root curl [***]" # 示例2:每天凌晨4点以root用户执行目录备份 - "CRON_DATA_BACKUP=0 4 * * * root rsync -a /opt /mnt/backup/opt" # 示例3:每天凌晨4点30分以root用户在其他容器内执行脚本 - "CRON_CONTAINER_SCRIPT=30 4 * * * root docker exec service-container /app/backup.sh"
直接通过 docker run 启动容器(适合非 docker-compose 环境):
bashdocker run -d \ --name cron-task \ --restart always \ --network none \ -v /var/run/docker.sock:/var/run/docker.sock \ -e "CRON_HELLO=* * * * * root echo '定时任务执行' >> /var/log/cron.log" \ whefter/cron
MIT License
Copyright (c) 2019 William Hefter
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429