一个计算机技术爱好者与学习者

0%

好好学Docker:Docker容器中使用定时任务

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
2
3
4
5
6
# centos
/etc/init.d/rsyslog start
# centos7
systemctl restart rsyslog.service
# centos6
service rsyslog restart

再次查看,crond日志文件就存在了。

4. 使用crond

crond启动后,其他的配置参考《Linux设置定时任务》即可。

  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-docker-crontab/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~