在Docker容器中的Cronjobs如何让他们运行?
我的debian docker容器中有一些cronjobs。 他们不会自动启动为什么?
我必须做一些解决方法吗?
如果您在docker中运行容器,则可以在docker主机上添加cron任务,以在docker容器中执行命令。
例如,要每隔5分钟在容器中运行“压力”应用程序,可以添加以下内容(当然,将容器IDreplace为您的crontab):
*/5 * * * * docker exec c78ddbed4ad9 /bin/sh -c 'stress -d 1 --hdd-bytes 64M --cpu 1 --io 2 --vm 2 --vm-bytes 64M --timeout 60s' >> /tmp/cronstress.log 2>&1
我在Docker主机上以超级用户身份运行它。
或者只是运行cron:
root@dockerhost:cron
你从哪里开始cron? 在Dockerfile中 ? 在RUN
这样做是行不通的,因为这个过程不会继续运行。 你需要这样做,例如通过CMD
。 更好的主意是使用suzpervisord 。
首先在docker容器中运行cron守护进程。 login容器时,在shell运行命令如下:
cron
那么就会定期开始工作。