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

What are the trade-offs between running cron within a Docker container vs. running a Docker container from the host machine's cron?

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

  1. 运行 来自主机 crontab 的容器。
  2. 离开容器 运行ning,并在容器内设置 cron 来处理调度。

谢谢!

优点 共 1 个:

  • Cron 通常总是在启动时启动,因此您不必担心在主机重新启动时启动容器
  • 在您的主机上进行日志记录
  • 更容易管理 cron 作业,因为它们都在一个地方

缺点:

  • 必须维护 crontab 和脚本的版本控制

优点 共 2 个:

  • 独立
  • 具有可版本化 Dockerfile 的可重现容器

缺点:

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