环境,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/