gpt4 book ai didi

ubuntu - 在不同主机上的 Docker 中运行 cron 的问题

转载 作者:IT老高 更新时间:2023-10-28 12:37:47 34 4
gpt4 key购买 nike

我正在尝试运行一个 docker 容器来管理我的 cronjobs

我在使用 centOS 6.5 基础的 docker 容器中运行一个非常简单的 cron 作为测试

* * * * * /bin/echo "it works!" >> test.log

如果容器在 CoreOS 主机上运行,​​它可以正常工作,但是如果我在 ubuntu 13.10 主机上运行容器,则不会执行 cron。 (我虽然主机没有影响容器中运行的内容)

两台主机都在运行 docker 0.8

我是否遗漏了一些明显的东西,或者这是一个错误?

谢谢

最佳答案

简短回答

将此行添加到您的 dockerfile 中

RUN sed -i '/session    required   pam_loginuid.so/c\#session    required   pam_loginuid.so' /etc/pam.d/crond

长答案

据我了解,问题与 CoreOS 和 Unbutu 之间的内核差异有关。这反过来会导致 pam 安全问题。

为了弄清楚我们首先需要为 cron 开启日志记录(因为我们在 docker 中正常启动不会执行)。运行

service rsyslog start
service crond restart

cron 日志出现此错误(位于/var/log/cron)

FAILED to open PAM security session (Cannot make/remove an entry for the specified session)

然后我查看了安全日志,它有这个错误(位于/var/log/secure)

pam_loginuid(crond:session): set_loginuid failed

更多谷歌搜索,发现我需要修改我的 pam cond 配置(在这里找到/etc/pam.d/crond)编辑此文件并注释掉以下行

#session    required   pam_loginuid.so

重新启动 crond,一切都会好的

关于ubuntu - 在不同主机上的 Docker 中运行 cron 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21926465/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com