码头工人的Cron容器 – 它们实际上如何工作?
我已经使用docker几个月了,我正致力于将各种不同的服务器映像停泊.一个一致的问题是许多服务器需要运行cron作业.关于那个在线(包括Stackoverflow)有很多讨论,但我并不完全理解它的机制. 目前,我正在使用主机的cron和docker exec进入每个容器来运行脚本.我创建了一个关于脚本名称和位置的约定;我的所有容器都有相同的脚本.这样可以避免主机的cron取决于容器. 基本上,每分钟一次,主持人的cron会这样做:
这可行,但使容器依赖于主机. 我想要做的是创建一个cron容器,在每个其他容器中启动脚本 – 但我不知道相当于“docker exec”从一个容器到另一个容器. 我现在的具体情况是在MySQL容器中运行备份,并且运行cron作业Moodle需要每分钟运行一次.最终,我还需要通过cron做更多的事情. Moodle使用命令行PHP脚本. 从另一个容器中的一个容器启动脚本的“正确”的dockerized方法是什么? 更新:也许有助于提及我的具体用例,尽管随着时间的推移会有更多. 目前,cron需要执行以下操作: >从MySQL执行数据库转储.我可以通过来自cron容器的mysqldump TCP链接来做到这一点;这里的缺点是我无法将备份用户限制为主机127.0.0.1.我也许能够以某种方式通过卷将MySQL套接字导入到cron容器中. 我的解决方案是:
>在容器内安装crond 我的Dockerfile的一部分
描述 >设置时区,因为cron需要这个才能正常运行任务 我在容器中使用它并且工作得很好. 一过程每次容器 如果你喜欢这个范例,那么每个cron任务制作一个Dockerfile.例如 > Dockerfile – 主程序 并构建所有容器:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |