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

【送书活动三期】解决docker服务假死问题

工作中使用docker-compose部署容器,有时候会出现使用docker-compose stopdocker-compose down命令想停掉容器,但是依然无法停止或者一直卡顿在停止中的阶段,这种问题很让人头疼啊!

目录

  • 问题描述
  • 问题排查
  • 问题解决
    • 终极杀招-最粗暴的解决方法
    • 手动清理假死的docker服务
  • 书籍推荐
    • 书籍名称:《Kubernetes 从入门到DevOps企业应用实战》
    • 内容介绍
    • 适合人群
    • 如何领书
    • 自主购买
  • 最后

问题描述

在使用docker部署服务时,偶尔会遇到docker服务假死的情况,使用的命令如下:

  • docker ps 显示容器状态正常,但是对外服务已经不可用不可访问
  • docker stats 没有任何反应
  • docker stop CONTAINER_ID 也没有任何反应
  • docker restart CONTAINER_ID 也没有任何反应
  • docker exec -it --user root CONTAINER_ID /bin/bash 也没有任何反应
  • docker logs CONTAINER_ID --tail 111 -f 也没有任何反应
  • docker-compose stop/down 命令也提示响应超时,不可用

问题排查

之前没有遇到过这种问题,也是第一次,于是就各种信息都看一下,各种可能性也都考虑到位

猜测这种情况,可能是由于容器内部的问题导致服务无法正常运行,或者Docker守护进程本身出现了问题。

  1. 查看容器内部日志(我的容器日志也没有问题)
  • 使用以下命令查看容器内的stdout和stderr输出,以获取有关容器内部问题的更多信息。
docker logs CONTAINER_ID
  • 使用-f选项可以实时跟踪日志
docker logs -f CONTAINER_ID
  1. 检查宿主机资源: 使用以下命令检查宿主机的资源使用情况,确保资源(CPU、内存)没有被耗尽(我的没有问题)
docker stats
  1. 查看Docker守护进程状态(我的容器依然处于运行状态)
  • 检查Docker守护进程的运行状态,确保它没有出现问题。
sudo systemctl status docker
  • 如果守护进程出现问题,可以尝试重启Docker服务
sudo systemctl restart docker
  1. 手动停止和启动容器: 尝试手动停止和启动容器,看是否能够解决问题。(我的问题么有解决啊😭)
docker stop CONTAINER_ID
docker start CONTAINER_ID
  1. 检查端口冲突: 确保容器所使用的端口没有被其他进程占用。(不可能,绝对不可能.jpg)
  2. 查看系统日志: 查看系统日志以获取更多关于系统或Docker的问题的信息。(说实话么有看出来什么问题)
dmesg | grep -i docker
  1. 查看网络配置(正常的网络状况,网络配置也没有修改)
  • 检查Docker网络配置,确保网络正常。
docker network ls
  • 查看容器的网络配置
docker inspect CONTAINER_ID | grep NetworkMode
  1. 查看防火墙设置: 如果使用防火墙,确保容器所需的端口没有被阻塞。

  2. 尝试重启Docker服务: 如果以上方法都没有解决问题,可以尝试重启整个Docker服务。(终极大招,管用!)

sudo systemctl restart docker

问题解决

终极杀招-最粗暴的解决方法

  • 重启docker(慎用):
sudo systemctl restart docker

要注意,这个操作会把所有的docker服务无差别的重启,慎用

手动清理假死的docker服务

  1. 找到假死的docker服务:执行docker ps命令找到容器ID【CONTAINER_ID】
  2. 先尝试使用docker自带的命令停止容器docker stop 【CONTAINER_ID】 发现停不掉
  3. 手动查找docker目录下的容器信息
  • docker默认目录:/var/lib/docker
  • 所有docker容器的信息都挂载在/var/lib/docker/containers目录下
  • 通过【CONTAINER_ID】找到该假死服务的目录
    • ll /var/lib/docker/containers | grep 【CONTAINER_ID】
    • cd /var/lib/docker/containers
  1. 删除该容器
    rm -rf 目录名

这里删除可能会报下面的错误,因为你的容器还挂载了其他目录,信息如下: rm:无法删除"/var/lib/docker/containers/目录名/secrets":设备或资源忙无法删除"/var/lib/docker/containers/目录名/shm": 设备或资源忙

这个时候查一下容器对应的挂载目录

cat /proc/mounts |grep "docker" |grep "【CONTAINER_ID】"

然后先取消挂载

umount /data/sys/var/docker/containers/挂载目录/secretsumount /data/sys/var/docker/containers/挂载目录/shm

如果这一步 unmout 不了,可以尝试找到使用该目录的进程

lsof |grep "挂载目录"

如果有相关进程,记录相关的进程号直接 kill -9 进程号

ll /var/lib/docker/containers | grep 【CONTAINER_ID】

这个时候再重新执行删除目录命令

cd /var/lib/docker/containers
rm -rf 目录名

这个时候就可以删掉了

  1. 再次尝试通过docker的命令停止容器
docker stop 【CONTAINER_ID】

docker rm -f 【CONTAINER_ID】或docker kill --signal=SIGINT  【CONTAINER_ID】

如果还是无法停掉改服务,可以按如下步骤:

使用linux进程管理命令来结束容器进程

  • 先找到该进程:ps -ef | grep【CONTAINER_ID】

  • 强制杀掉筛选出来的进程信息:kill -9 PID

  1. 再次检查docker服务状态 docker ps

先可以看到该服务已经被干掉了。

如果说按照这个操作依然无法解决docker假死问题,那么我还是建议大家采用上面最粗暴的方式去解决,但是要注意,这个操作会把所有的docker服务无差别的重启。


书籍推荐

  • 源自近200万学员热捧的Kubernetes实战课程
  • 作者研究和实践容器技术超过10年历时三年精心打造,涵盖大量一线大厂实战项目
  • 理论基础+命令详解+众多应用场景+企业级案例+自动化DevOps运维知识体系

书籍名称:《Kubernetes 从入门到DevOps企业应用实战》

在这里插入图片描述

内容介绍

本书作者从事容器技术方面的研究和实践已近十年,还是一位Kubernetes讲师和社区贡献者,其录制的Kubernetes视频课入选了工信部人才交流中心官方认证课程,本书是在总结多年来不断改进的视频课的基础上精心编撰而成,内容经过学员检验,值得依赖。

本书除介绍Kubernetes本身,还介绍了很多周边相关技术,比如,Jekins、CI\CD、Istio、Prommethues、Ingress、K3s等,有助于读者整合运用这些技术,真正解决生产实践中遇到的问题。
总之,这是一本理解兼备实践,注重实操的Kubernetes好书,期待读者从本书中收获多多。

适合人群

本书由浅入深,有趣有料,适合想提升代码编写水平的大学生、求职者、编程爱好者阅读,也适合有1~2年开发经验的程序员参考,还可以作为各类培训班的培训教材。

如何领书

————————————————
本次本篇文章送书 🔥2-3本 评论区抽2-3位小伙伴送书
📆 活动时间:截止到 2023-12-09 20:00:00
🎁抽奖方式:利用网络公开的在线抽奖工具进行抽奖
💡参与方式:关注、点赞、收藏,评论 “人生苦短,K8S超简单”
根据文章阅读量的多少来安排送书的本数。
————————————————

🔥 注:活动结束后,会私信中奖粉丝的,各位注意查看私信哦!

自主购买

小伙伴也可以访问链接进行自主购买哦~
直达京东购买链接🔗:《Kubernetes 从入门到DevOps企业应用实战》


最后

  • 好看的灵魂千篇一律,有趣的鲲志一百六七!
  • 如果觉得文章还不错的话,可以点赞+收藏+关注 支持一下,鲲志的主页 还有很多有趣的文章,欢迎小伙伴们前去点评
  • 如果有什么需要改进的地方还请大佬指出❌

在这里插入图片描述

相关文章:

【送书活动三期】解决docker服务假死问题

工作中使用docker-compose部署容器,有时候会出现使用docker-compose stop或docker-compose down命令想停掉容器,但是依然无法停止或者一直卡顿在停止中的阶段,这种问题很让人头疼啊! 目录 问题描述问题排查问题解决终极杀招-最粗暴…...

【每日一题】拼车+【差分数组】

文章目录 Tag题目来源解题思路方法一:差分 写在最后 Tag 【差分数组】【数组】【2023-12-02】 题目来源 1094. 拼车 解题思路 本题朴素的解题思路是统计题目中提到的每一个站点的车上人数,如果某个站点的车上人数大于车上的座位数直接返回 false&…...

【开源】基于JAVA的农村物流配送系统

项目编号: S 024 ,文末获取源码。 \color{red}{项目编号:S024,文末获取源码。} 项目编号:S024,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2…...

7、Jenkins+Nexus3+Docker+K8s实现CICD

文章目录 基本环境配置一、Jenkins安装必要插件二、Jenkins系统配置三、新建流水线四、在项目工程里添加Jenkinsfile、deploy.yml五、在项目工程里添加Dockerfile在这里插入图片描述 总结 提示:本章主要记录各基本环境搭建好后如何配置Jenkins流水线部署微服务到K8s…...

解决git action发布失败报错:Error: Resource not accessible by integration

现象: 网上说的解决方法都是什么到github个人中心setting里面的action设置里面去找。 可这玩意根本就没有! 正确解决办法: 在你的仓库页面,注意是仓库页面的setting里面: Actions> General>Workflow permisss…...

[传智杯 #2 决赛] 补刀

题目描述 UIM 在写程序的空闲玩一款 MOBA 游戏。 当敌方的小兵进入到我方防御塔的范围内,就会持续受到防御塔造成的伤害;当然我方英雄也可以对它造成伤害。当小兵的血量降到了 0 或者更低,就会被击杀。为了获得经验,UIM 希望在防…...

C语言:求Sn=a+aa+aaa+aaaa+……(n个a)之值,其中a表示一个数字,n表示a的位数,n由键盘录入。

分析: 在主函数 main 中,程序首先定义四个整型变量 a、n、i 和 sn,并初始化 a、n 和 i 的值,其中 sn 用于记录数列的和。然后使用 scanf 函数从标准输入中读取用户输入的两个整数 a 和 n。 接下来,程序通过 while …...

【nlp】4.1 fasttext工具介绍(文本分类、训练词向量、词向量迁移)

fasttext工具介绍与文本分类 1 fasttext介绍1.1 fasttext作用1.2 fasttext工具包的优势1.3 fasttext的安装1.4 验证安装2 fasttext文本分类2.1 文本分类概念2.2 文本分类种类2.3 文本分类的过程2.4 文本分类代码实现2.4.1 获取数据2.4.2 训练集与验证集的划分2.4.3 训练模型2.4…...

Spring中的事务管理

1 基本概念 事务:将一组操作抽象成一个不可再分的单位,这组操作可以有很多个,但是它们要么就全部都执行成功,这时算作事务执行成功;要不其中有操作执行失败,则其余操作都视为执行失败,这时候需…...

量子光学的进步:光子学的“下一件小事”

量子光学是量子力学和光学交叉领域中发展迅速的一门学科,探索光的基本特性及其与物质在量子水平上的相互作用。通过利用光的独特特性,量子光学为通信、计算、密码学和传感等各个学科的变革性进步铺平了道路。 如今,量子光学领域的研究人员和工…...

微信小程序获取定位显示在百度地图上位置出现偏差

项目场景: 背景: 微信小程序端获取手机定位坐标,以及正确展示位置通过详细地址解析为定位坐标显示在小程序端以及PC后台小程序获取的地理坐标与百度地图坐标相互转化 相关知识 目前国内主要有以下三种坐标系: WGS84&#xff1a…...

【LeetCode 0170】【哈希】两数之和(3) 数据结构设计

https://leetcode.com/problems/two-sum-iii-data-structure-design/ 描述 Design and implement a TwoSum class. It should support the following operations: add and find. add(input) – Add the number input to an internal data structure. find(value) – Find if …...

005、简单页面-容器组件

之——布局 目录 之——布局 杂谈 正文 1.布局基础知识 2.Column 3.Row 4.实践 杂谈 布局容器组件。 一个丰富的页面需要很多组件组成,那么,我们如何才能让这些组件有条不紊地在页面上布局呢?这就需要借助容器组件来实现。 容器组件是…...

stm32中断调用流程

USART1_IRQHandler(void)(中断服务函数) -> HAL_UART_IRQHandler(UART_HandleTypeDef *huart)(中断处理函数) -> UART_Receive_IT(UART_HandleTypeDef *huart) (接收函数) -> HAL_UART_RxCpltCallback(huart);(中断回调函数) HAL_UART_IRQHandler(UART_HandleTypeDef…...

18487.1 - 2015 电动汽车充电系统标准 第1部分 关键点梳理

一、部分知识介绍 1、连接方式 使用电缆和连接器将电动汽车接入电网(电源)的方法。 1.1、连接方式A 1.2、连接方式B 1.3、连接方式C 2、电动汽车控电设备 2.1、按照输出电压分类 1)交流 单相 220V,三相 380V. 2&#xff09…...

WPF实战项目十八(客户端):添加新增、查询、编辑功能

1、ToDoView.xmal添加引用&#xff0c;添加微软的行为类 xmlns:i"http://schemas.microsoft.com/xaml/behaviors" 2、给项目添加行为 <i:Interaction.Triggers><i:EventTrigger EventName"MouseLeftButtonUp"><i:InvokeCommandAction Com…...

职位招聘管理与推荐系统Python+Django网页界面+协同过滤推荐算法

一、介绍 职位招聘管理与推荐系统。本系统使用Python作为主要开发语言&#xff0c;以WEB网页平台的方式进行呈现。前端使用HTML、CSS、Ajax、BootStrap等技术&#xff0c;后端使用Django框架处理用户请求。 系统创新点&#xff1a;相对于传统的管理系统&#xff0c;本系统使用…...

C#文件流二进制文件的读写

目录 一、BinaryWriter类 二、BinaryReader类 三、示例 1.源码 2.生成效果 二进制文件的写入与读取主要是通过BinaryWriter类和BinaryReader类来实现的。 一、BinaryWriter类 BinaryWriter类以二进制形式将基元类型写入流&#xff0c;并支持用特定的编码写入字符串&#…...

如何正确选择爬虫采集接口和API?区别在哪里?

在信息时代&#xff0c;数据已经成为了一个国家、一个企业、一个个人最宝贵的资源。而爬虫采集接口则是获取这些数据的重要手段之一。本文将从以下八个方面进行详细讨论&#xff1a; 1.什么是爬虫采集接口&#xff1f; 2.爬虫采集接口的作用和意义是什么&#xff1f; 3.爬虫…...

k8s部署jenkins

1.先决条件 1.因为国内的容器镜像加速器无法实时更新docker hub上的镜像资源.所以可以自己进行jenkins的容器镜像创建,. 2.这里用到了storageClass k8s的动态制备.详情参考: k8s-StoargClass的使用-基于nfs-CSDN博客 3.安装docker服务.(用于构建docker image) 2.构建jenki…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...