如下所示,我有一个centos7容器,我配置了一个cron作业。但它似乎没有执行。我错过了什么?
主机:centos:在mac上运行7个docker容器
[root@a2118127510b /]# cat /etc/*-release
CentOS Linux release 7.2.1511 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
BUG_REPORT_URL="https://bugs.centos.org/
CentOS Linux release 7.2.1511 (Core)
CentOS Linux release 7.2.1511 (Core)
[root@a2118127510b /]#
[root@a2118127510b /]# date
Fri Sep 16 06:27:49 UTC 2016
[root@a2118127510b /]# crontab -l
no crontab for root
[root@a2118127510b /]# cat mycron
* * * * * echo "hello" >> /var/log/cron1.log 2>&1
[root@a2118127510b /]# touch /var/log/cron1.log
[root@a2118127510b /]# crontab -u root mycron
[root@a2118127510b /]# crontab -l
* * * * * echo "hello" >> /var/log/cron1.log 2>&1
[root@a2118127510b /]# date
Fri Sep 16 06:27:55 UTC 2016
[root@a2118127510b /]# cat /var/log/cron1.log
[root@a2118127510b /]# date
Fri Sep 16 06:32:03 UTC 2016
[root@a2118127510b /]# cat /var/log/cron1.log
[root@a2118127510b /]#
答案 0 :(得分:0)
Docker容器(通常)只运行一个进程,而在典型的VM / OS设置中,有多个服务在后台运行,执行诸如Cron执行等操作。 Cron服务可能没有在您的容器中运行,因此不会触发任何Cron作业。
您可以使用ps
或类似命令检查Cron服务是否正在运行。 http://www.cyberciti.biz/faq/howto-linux-unix-start-restart-cron/还提供有关启动和停止Cron服务的信息。
最“Dockerlike”的方法是拥有一个只运行Cron进程的容器,因为它是在前台模式下运行的单个作业,并显示进程的输出而不是写入日志文件。 https://github.com/aptible/docker-cron-example做了类似的事情,虽然它在后台运行Cron,然后tail
在前台登录。