当前位置: 首页 > news >正文

Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?

目录

问题

systemd

Docker Service 和 Socket

警告的原因

解决方法


问题

使用如下命令停止 Docker

# systemctl stop docker

执行后报的时候报了一个 warning,如下

Warning: Stopping docker.service, but it can still be activated by:docker.socket

这时候使用 docker ps 命令时会发现 docker 依然在运行。这个警告之所以出现,是因为 systemd 管理的 Docker 服务不仅包括了 docker.service,还有与之相关的 docker.socket。为了更好地理解这个问题,需要简单了解下 systemd 的工作原理,以及 Docker 在 systemd 中的配置和激活机制。

systemd

systemd(system daemon)是一个系统和服务管理器,作为许多 Linux 发行版的默认初始化系统,负责启动和管理系统服务和进程。systemd 引入了一些新的概念和特性,比如并行化服务启动、依赖关系管理、日志记录以及 socket 激活等。systemd 也引入了单元(unit)的概念,其中最重要的几种单元类型包括:

  • Service:代表了一个后台守护进程。
  • Socket:用于监听网络连接或本地 Unix 域套接字并激活相关服务。
  • Timer:基于时间的触发器,用于定时执行任务。

Docker Service 和 Socket

Docker 作为一个容器化平台,其服务由 systemd 通过 docker.service 单元管理。当 Docker 服务启动时,会在系统上创建一个 Unix 域套接字,通常是 /var/run/docker.sock,用于接收客户端的连接请求。这个套接字允许 Docker CLI 和其他工具与 Docker 守护进程进行通信。

为了让 Docker 服务能够在有连接请求时自动重启,systemd 还管理着 docker.socket单元。docker.socket 的作用是监听 /var/run/docker.sock,并在有客户端试图连接到这个套接字时激活 docker.service。这意味着即使 Docker 服务被停止,只要有一个客户端尝试连接到 docker.socket,systemd 就会自动重启 Docker 服务。

警告的原因

当看到“Warning: Stopping docker.service, but it can still be activated by: docker.socket”的警告时,并不意味着 Docker 服务没有被正确停止。实际上,Docker 服务确实被停止了,但是 systemd 仍旧保留着 docker.socket,以便在后续有客户端连接请求时能够立即重启 Docker 服务。这种机制确保了 Docker 服务的高可用性和快速响应能力,但同时也可能导致用户误以为 Docker 服务没有完全停止。

解决方法

如果想要彻底停止 Docker 服务并且不希望通过 socket 激活重新启动,可以分别执行以下命令:

停止 docker.socket

# systemctl stop docker.socket

停止 docker.service

systemctl stop docker.service

检查下是否停止成功

# systemctl status docker.service 
# systemctl status docker.socket

http://www.lryc.cn/news/401768.html

相关文章:

  • Git 用法
  • 《昇思25天学习打卡营第20天|GAN图像生成》
  • 【字幕】字幕特效入门
  • Ubuntu 24.04安装Jellyfin媒体服务器图解教程
  • css3 中的伪类和伪元素
  • 人工智能导论-知识图谱
  • LabVIEW液压数据采集测试系统
  • 工业三防平板助力工厂生产数据实时管理
  • LabVIEW人工模拟肺控制系统开发
  • 达梦 ./disql SYSDBA/SYSDBA报错[-70028]:创建SOCKET连接失败. 解决方法
  • Autosar RTE配置-Assembly和Delegation的使用-基于ETAS软件
  • 【网络安全】PostMessage:分析JS实现XSS
  • liosam复现
  • Flutter实战小案例
  • uniapp转小程序,小程序转uniapp方法
  • WPF中Frame
  • 大数据基础:Doris重点架构原理
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • k8s核心操作_存储抽象_K8S中使用ConfigMap抽取配置_实现配置热更新---分布式云原生部署架构搭建032
  • 【前端】SpringBootWeb 篇-入门了解 Spring Cache、Spring Task与WebSocket 框架
  • 应用最优化方法及MATLAB实现——第4章代码实现
  • 搜维尔科技:Riablo提供一种创新的康复解决方案,通过激活本体感觉,并通过视听反馈促进神经肌肉的训练。
  • NodeJS技巧:在循环中管理异步函数的执行次数
  • debian 实现离线批量安装软件包
  • 远程开机准备工作
  • PGCCC|【PostgreSQL】PCA+PCP+PCM等IT类认证申报个税退税指南
  • 让AI语言模型自由飞翔:LangChain框架的奇妙世界
  • solidity基础语法(以太坊solidity合约)
  • 【机器学习实战】电力需求预测挑战赛 Datawhale AI 夏令营 task2
  • 【设计模式】【创建型模式】【02工厂模式】