在Docker容器中运行cron与从主机的cron运行Docker容器之间有什么权衡?

我在Docker容器中有一个批处理作业,我想每天早上8:30运行。 在决定采取什么措施时我应该考虑什么:

  1. 从主机的crontab运行容器。
  2. 保持容器运行,并在容器中设置cron来处理调度。

谢谢!

1的优点

  • Cron通常始终在启动时启动,因此在主机重新启动时不必担心启动容器
  • logging发生在您的主机上
  • 更容易pipe理cron作业,因为他们在一个地方

缺点:

  • 必须保持crontab和脚本的版本控制

2的优点

  • 自包含
  • 具有可版本化Docker文件的可重复容器

缺点:

  • 必须在启动时启动容器,并确保它保持运行
  • 每个容器都有它自己的日志,所以如果你使用中央日志服务器,这使得它变得复杂
  • 容器需要在对cron作业进行任何更改时重build。
Interesting Posts