先说一下我的环境:
- Centos 7.6.1810
- docker client 1.13.1
- Yum 使用阿里源
遇到的问题:
systemctl stop dockersystemctl disable docker- 执行以上两条命令之后,docker 依然会在每个小时的整点启动。换句说如果使用
systemctl stop docker根本不能停掉 docker,过段时间依然会诡异重启.
分析原因:
-
启动 docker 的时候,会连带启动一个定时器任务
docker-cleanup.timer,这个 timer 任务会每隔 1 小时运行docker-cleanup.service这个任务来清理 dead 状态的容器. -
关闭 docker 的时候,
docker-cleanup.timer这个任务不会被连带关闭,它依然每小时唤docker-cleanup.service一次,这个清理任务又依赖于docker.service服务,又继续把 docker 唤醒,所以最后造成每隔一小时 docker 的诡异重启.
strong>解决方案:
- RedHat 里面的附件已经给出了方法,把 docker-cleanup.service 和 BindsTo=docker.service 里面的
Requires=docker.service换成BindsTo=docker.service即可,这样关闭 docker 的时候,会连带关闭这两个服务,同理如果关闭docker-cleanup.timer同样会关闭docker.service
我的疑惑:
-
搜索了中文圈,发现没有人提到过这个问题。但这是一个很常见的 Bug,难道没人碰到过吗?
-
google 英文检索之后发现 RedHat 的bug 提交报告里面有这个问题记录. 但看时间已经在 2017 年 5 月份就解决了,为什么 Centos 至今 yum 安装的 docker 还有这个问题?

