docker服务关停的实现步骤

 更新时间:2023年10月23日 09:27:31   作者:程皮  
在我看来所谓的优雅关闭,就是在系统关闭时,预留一些时间,让你有机会来善后一些事情,本文就来介绍一下docker服务如何正确关停,感兴趣的可以了解一下

说明:停止 docker 服务之前,先把所有的容器都停掉,如果没停掉,再重启 docker 服务之后,所有的容器就会成为 Exited 状态。如果你只是想停止 docker 服务,docker 中的容器还继续提供服务,需要在docker daemon.json 中配置 “live-restore”:true详细配置请参考:docker 官方容器配置live-restore

关闭操作

之前一直使用如下命令关闭 docker 服务

# 禁用 docker 开机自启
systemctl disable docker
# 关停 docker 服务
systemctl stop docker

但是今天使用 systemctl stop docker 命令关停的时候,确返回了如下警告:

image.png

也就是在停止 docker.service,但是又被 docker.socket 激活启动起来了。
此时我们就需要理解 docker 各部分之间的关系才能正确的把 docker 服务停止掉。

docker 相关组成理解

我们安装的 docker 可以分为以下几个内容:

1.docker 客户端

文件名 docker, 一般默认安装在 /usr/bin 目录下。 比如我们执行的 docker ps 调用的就是 docker 客户端程序。

2.dockerd (docker daemon)服务

文件名 dockerd,一般默认安装在 /usr/bin 目录下。 比如我们说的 docker 服务,就是在说的 dockerd 服务。
可以在 /lib/systemd/system 目录下,看到 docker.service 里面有这么句话

3. docker.socket

文件名 docker.socket, 一般默认安装在 /var/run 目录下。用来实现 docker 客户端和 dockerd 服务 之间的 API 通讯。
该文件 (/var/run/docker.socket) 是一个 linux socket(套接字) 文件,通过 la -al 命令可以看到该文件的标识是 s 。
可以在 /lib/systemd/system 目录下,看到 docker.socket 里面有这么句话

无法关停的原因分析

如果 docker.socket 服务开启着,并在 docker 客户端执行 docker ps 指令,那么即使现在 dockerd 没有运行,docker.socket 也会将它启动起来。
如果 docker.socket 服务没有处于运行状态,那么就会报错

所以要真正关闭 docker 服务,要执行如下 2 个命令

# 关闭 docker.socket 服务
systemctl stop docker.socket
# 关闭 docker.service 服务
systemctl stop docker.service

到此这篇关于docker服务关停的实现步骤的文章就介绍到这了,更多相关docker服务关停内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker安装Oracle_11g的方法

    Docker安装Oracle_11g的方法

    这篇文章主要介绍了Docker安装Oracle_11g的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • mac下docker 安装 ES的详细过程

    mac下docker 安装 ES的详细过程

    这篇文章主要介绍了mac下docker 安装 ES的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • docker-compose之基本语法解读

    docker-compose之基本语法解读

    这篇文章主要介绍了docker-compose之基本语法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 在Ubuntu上使用Docker部署DeepSeek的详细步骤

    在Ubuntu上使用Docker部署DeepSeek的详细步骤

    docker是容器化技术的代表,它能够将应用程序及其依赖项打包成一个独立的容器,在 DeepSeek 部署中,使用 docker 可以确保 deepseek - r1 在不同环境中具有一致的运行状态,本文给大家介绍了在Ubuntu上使用Docker部署DeepSeek的详细步骤,需要的朋友可以参考下
    2025-02-02
  • Docker镜像分层的实现示例

    Docker镜像分层的实现示例

    本文主要介绍了Docker镜像分层的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • docker容器的四种端口映射演示分析

    docker容器的四种端口映射演示分析

    这篇文章主要为大家介绍了docker容器的四种端口映射演示分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • 利用 Docker 构建简单的 java 开发编译环境的方法详解

    利用 Docker 构建简单的 java 开发编译环境的方法详解

    这篇文章主要介绍了利用 Docker 构建简单的 java 开发编译环境的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Docker-compose详解和LNMP搭建全过程

    Docker-compose详解和LNMP搭建全过程

    Docker-Compose是Docker的一个官方开源项目,用于快速编排Docker容器集群,它允许用户在YAML文件中定义多个服务,每个服务可以包含一个或多个容器,这些容器可以通过Dockerfile构建或直接运行现有镜像,Docker-Compose支持多种配置选项
    2024-11-11
  • Docker设置mysql不区分大小写问题

    Docker设置mysql不区分大小写问题

    这篇文章主要介绍了Docker设置mysql不区分大小写问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Linux系统Docker 部署 ASP.NET Core应用的流程分析

    Linux系统Docker 部署 ASP.NET Core应用的流程分析

    这篇文章主要介绍了Linux系统Docker 部署 ASP.NET Core应用的流程分析,在操作过程中小编遇到很多问题,下面把我的经验及处理方法分享到脚本之家平台,需要的朋友参考下吧
    2021-06-06

最新评论