如何获得Docker容器进程的ID?-创新互联

如何获得Docker容器进程的ID?

我们提供的服务有:成都做网站、网站设计、微信公众号开发、网站优化、网站认证、聊城ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的聊城网站制作公司

开始之前

在某些情况下,比如系统负载很高 docker stop 无法关闭某个容器(无响应),这时可以根据容器进程的ID找到宿主机进程ID,然后kill掉这个容器(最好已经使用了数据卷数据持久化,否则容器内数据有丢失风险)。

操作步骤

  1. 列出当前容器
docker ps --format '{{.ID}} {{ .Names }}'

CONTAINER ID    NAMES
1201281cb959    web
425a6234df74    db
  1. 获得容器进程ID
docker inspect -f '{{ .State.Pid }}' web
9834
  1. 进程信息
tail /proc/9834/cmdline ;echo 
nginx: master process nginx -g daemon off;
  1. 也可以使用top子命令
docker top web
  1. 最后如有必要可以kill这个进程ID,这等效于强制关闭容器。
kill -9 9834

Docker 容器进程

内容摘自 <>
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的 root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID空间。

容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

小结

最后来总结下文章中的知识点

  • Docker容器本质上是宿主机上的进程。
  • 容器进程ID就是宿主机进程ID,因为它们是相同的。
  • 如果Docker守护进程正常响应,请不要直接kill进程。

参考文章

doker&k8s Qun [703906133]

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:如何获得Docker容器进程的ID?-创新互联
本文链接:http://scyanting.com/article/diecio.html