Docker 中执行定时任务 crond
# 一、创建定时任务文件
* * * * * root echo "Hello, CentOS!" >> /var/log/my-cron-job.log 2>&1
1
2
2
- 每隔一分钟向
/var/log/my-cron-job.log
文件写入 "Hello, CentOS!";
# 二、构建Dockerfile
FROM centos:7
ADD my-cron-job /etc/cron.d/
RUN touch /var/log/my-cron-job.log\
&& chmod 0644 /etc/cron.d/my-cron-job\
&& yum install -y cronie
CMD crond
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- 以 centos7 为基础镜像,将定时任务文件拷贝到
/etc/cron.d/
目录下; - 创建
/var/log/my-cron-job.log
文件并修改权限,安装crond
程序,都放在一个 RUN 命令中能够减少镜像层数; - 容器启动后,执行
crond
命令,注意不要前台运行,否则会阻塞后续命令;
# 三、构建并运行
- 在当前目录执行
docker build -t cron:v1 .
命令,构建镜像; - 执行
docker run -d --name my_cron cron:v1
命令,创建容器并后台运行; - 执行
docker exec -it my_cron tail -f /var/log/my-cron-job.log
命令,查看日志输出情况;
编辑 (opens new window)
上次更新: 2025/01/13, 10:55:56