Docker无法stop或者rm指定容器

2024-06-03 22:28
文章标签 指定 docker 无法 容器 rm stop

本文主要是介绍Docker无法stop或者rm指定容器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Docker无法stop或者rm指定容器

今日准备重启一下docker 容器部署的 Nginx 时,使用的命令是
docker exec -it ir-nginx nginx -s reload
结果发现无法重启报错
然后想着关闭再启动,结果发现
docker restart 、docker stop 、docker kill 、docker exec
都不行
于是用systemctl stop docker再 systemctl start docker
虽然命令可以执行成功,但是Nginx那个容器还是不能关闭、重启

执行 docker restart
报错记录的为

OCI runtime exec failed: exec failed: json: cannot unmarshal number into Go struct field CompatState.init_process_start of type string: unknown

于是想着再复制一个yml脚本(弄一个新的docker),改了一下里面的信息
在这里插入图片描述

再执行 docker-compose -f /data/compose/nginx-arm64-v2.yml up -d

报错记录的为

Error response from daemon: Cannot restart container f8ccd87c9714: Cannot kill container f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c: unknown error after kill: runc did not terminate sucessfully: json: cannot unmarshal number into Go struct field CompatState.init_process_start of type string

里面有个 f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c 的id
(后续:往后就直接执行原来的yml,关键是要把这个特别长的id拿到)

于是想查找与容器ID相关的文件或套接字,把它kill掉

lsof | grep "f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c"

结果查出一大堆数据,不可能一个一个kill吧

于是使用 docker inspect 和 awk 来获取并杀死容器主进程PID

# 获取容器主进程的PID  
PID=$(docker inspect -f '{{.State.Pid}}' f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c)  # 杀死该PID(请谨慎使用)  
kill $PID

该操作可以直接在控制台执行

在同一个 shell 会话中连续执行这两个命令时,第二个命令能够“知道”它的 PID 来自于上一条命令的记录,因为第一个命令的输出被临时存储(关闭终端窗口或退出 shell 会话时,变量就会消失)在了 PID 变量中,并且这个变量在后续的命令中是可以被引用的。

然后发现通过
docker ps (查看"正在运行"的容器) ,看不到那个容器了
通过 docker ps -a 可以看到,表示已经被关闭了
于是再把这个容器给删除了
docker rm -f ir-nginx

最后再执行(这个yml‘脚本是我自己的,你们用你们自己的)

docker-compose -f /data/compose/nginx-arm64.yml up -d

验证了一下重启命令,发现没问题了。

这篇关于Docker无法stop或者rm指定容器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1028280

相关文章

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

如何高效移除C++关联容器中的元素

《如何高效移除C++关联容器中的元素》关联容器和顺序容器有着很大不同,关联容器中的元素是按照关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的,本文介绍了如何高效移除C+... 目录一、简介二、移除给定位置的元素三、移除与特定键值等价的元素四、移除满足特android定条件的元

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl