开始之前
在某些情况下,比如系统负载很高<代码>码头工人停止代码>无法关闭某个容器(无响应),这时可以根据容器进程的ID找到宿主机进程ID,然后杀死掉这个容器(最好已经使用了数据卷数据持久化,否则容器内数据有丢失风险)。
操作步骤
-
<李>列出当前容器李>
<代码类=" language-bash ">码头工人ps -格式的{{。ID}} {{. name}}’ 容器ID名称 1201281 cb959网络 425年a6234df74 db 代码>
-
<李>获得容器进程ID 李>
<代码类=" language-shell "> {{.State码头工人检查- f”。Pid}}”网络 9834年代码>
-
<李>进程信息李>
<代码类="语言">尾巴/proc/9834/cmdline;呼应 nginx:主进程nginx - g守护进程;代码>
-
<李>也可以使用顶级子命令李>
<代码类=" language-bash ">码头工人高级web 代码>
-
<李>最后如有必要可以杀死这个进程ID,这等效于强制关闭容器。李>
<代码类=" language-bash "> kill - 9 9834年代码>
码头工人容器进程
内容摘自& lt; & lt;码头工人——从入门到实践祝辞祝辞
镜像(图片)和容器(容器)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,<强>容器是镜像运行时的实体>强。容器可以被创建,启动,停止,删除,暂停等。
<强>容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间>强。因此容器可以拥有自己的根文件系统,自己的网络配置,自己的进程空间,甚至自己的用户ID空间。
<强>容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样>强。这种特性使得容器封装的应用比直接在宿主运行更加安全。
小结
最后来总结下文章中的知识点
-
<李>码头工人容器本质上是宿主机上的进程。李>
<李>容器进程ID就是宿主机进程ID,因为它们是相同的。李>
<李>如果码头工人守护进程正常响应,请不要直接杀进程。李>
参考文章
doker& k8群(703906133)