1. 前言
《Linux设置定时任务》一文中学习了crontab的使用方法,但是同样的配置方法,在Docker中是不会生效的。因为Docker中默认只会启动一个进程,crond并不会启动。本文研究一下在Docker中配置定时任务的方法,踩踩坑。
2. 启动crond
要想在容器中使用定时任务,有三个办法:
- 把crond作为一号进程启动。
- supervisor作为一号进程启动,使用supervisor启动crond。
- 进入容器手动启动crond。
本文使用第一个方法启动crond,启动命令为:
1 | docker run --name vkcrond -d -it voidking/crond:v1.0 "/bin/bash" "-c" "/usr/sbin/crond > start.log && tail -f start.log" |
3. crond日志
1、查看crond日志tail /var/log/cron
报错没有这个文件,这是因为没有打开rsyslog。
2、打开rsyslog
1 | # centos |
再次查看,crond日志文件就存在了。
4. 使用crond
crond启动后,其他的配置参考《Linux设置定时任务》即可。