systemd关闭docker一段时间后仍然自动启动的问题

本文解析了Docker服务在使用systemctl停止后仍每隔一小时自动重启的原因,并提供了详细的解决方案。问题根源在于docker-cleanup.timer定时器未能随Docker服务一同关闭,导致周期性重启。文章指导如何调整服务依赖,确保Docker及相关组件彻底停止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:systemctl stop docker.service 隔一段时间后docker又跑起来

解决方法:

1、网上查询了有人遇到同样的问题,贴出解决方法

分析原因:

启动 docker 的时候,会连带启动一个定时器任务docker-cleanup.timer,这个 timer 任务会每隔 1 小时运行 docker-cleanup.service这个任务来清理 dead 状态的容器.

关闭 docker 的时候,docker-cleanup.timer 这个任务不会被连带关闭,它依然每小时唤 docker-cleanup.service 一次,这个清理任务又依赖于docker.service服务,又继续把 docker 唤醒,所以最后造成每隔一小时 docker 的诡异重启.

解决方案:

RedHat 里面的附件已经给出了方法,把 docker-cleanup.service 和 BindsTo=docker.service 里面的Requires=docker.service换成BindsTo=docker.service 即可,这样关闭 docker 的时候,会连带关闭这两个服务,同理如果关闭docker-cleanup.timer 同样会关闭docker.service

2、同时停掉相关服务

systemctl stop docker.service

systemctl stop docker-cleanup.service

systemctl stop docker-cleanup.timer

 

### WSL2环境下Docker启动失败的解决方案 对于在WSL2环境中遇到的Docker启动失败问题,可以采取多种方法来尝试解决。当面对Docker桌面版本存在两个未被清除的安装文档时,这可能会干扰新安装过程并造成启动失败的情况[^3]。因此,建议先完全卸载Docker Desktop,并彻底移除任何残留的配置文件或目录。 另外,在某些情况下关闭WSL命令窗口可能导致关联的服务停止运行,再次开启可能需要一段时间才能恢复正常操作状态[^4]。为了避免这种情况发生,保持WSL实例持续在线可能是必要的;或者考虑优化系统的响应速度以减少等待时间。 针对更深层次的问题,有报告指出通过官方渠道下载Docker可能存在兼容性挑战,推荐参考社区指南进行安装设置[^1]。此外,探索不依赖于Docker Desktop的方式部署Docker引擎也是一个可行的选择,这种方法能够绕过一些特定平台带来的局限性[^5]。 #### 卸载与清理旧版Docker 为了确保环境干净无污染,执行如下步骤: ```bash sudo apt-get purge docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker ``` 以上命令用于移除已有的Docker组件及其数据存储位置。 #### 安装最新稳定版Docker CE 按照官方说明或是社区反馈较好的实践方式获取适合当前Linux发行版的软件包: ```bash curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh ``` 完成上述操作之后重启计算机使更改生效,并验证安装是否成功: ```bash docker --version ``` 如果一切顺利,则应该可以看到所安装的具体版本号信息。 #### 设置自动启动服务 为了让Docker能够在每次开机后自动加载,可启用相应的systemd单元文件: ```bash sudo systemctl enable docker.service sudo systemctl start docker.service ``` 这样便可以在未来免去手动激活该服务的过程。 #### 测试容器功能 最后创建一个小测试案例确认基本功能可用: ```bash docker run hello-world ``` 此命令将会拉取一个简单的测试镜像并展示一条欢迎消息证明环境搭建完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值