docker crontab踩坑记录

环境,docker centos7.4

容器启动时注意两点

入口要设置/usr/sbin/init,并且配置主机完全访问权限(--privileged)

(否则执行service的时候会出现Failed to get D-Bus connection: Operation not permitted)

 

1、查看cron服务是否正常运行

service crond status

如果service报命令找不到的错,执行 yum -y install initscripts

2、启动cron(设置为随容器启动)

/usr/sbin/crond -i

3、重点坑1

定时任务在vi /etc/crontab下设置(注意要指定用户名,修改无须重启),不要使用crontab -e(我试验设置是没有效果的)

4、重点坑2

要设置定时任务的user-name,在宿主机使用不设置也是正常的,docker容器里面就必须要设置了。稳妥起见,以后都统一设置吧

 

附上测试任务语句

*/1 * * * * root sh /root/test111.sh >> /root/testrsss.txt

每分钟 的第一秒 执行 test111.sh 并且向 testrsss.txt输出,查看是否正常执行,sh前面的就是user-name

 

具体原因也没有深究,估计是docker的用户环境有冲突吧

 

不过最后试验后还是很多奇怪的bug,决定不在docker中使用定时器了,下一篇继续记录解决方法

 

 转载请注明博客出处:http://www.cnblogs.com/cjh-notes/

 

posted on 2019-10-21 10:01  代码风云  阅读(4029)  评论(0编辑  收藏  举报

导航