溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何獲得Docker容器進程的ID?

發布時間:2020-07-16 17:28:02 來源:網絡 閱讀:995 作者:yunweilu 欄目:系統運維

如何獲得Docker容器進程的ID?

開始之前

在某些情況下,比如系統負載很高 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 容器進程

內容摘自 <<Docker — 從入門到實踐>>
鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。

容器的實質是進程,但與直接在宿主執行的進程不同,容器進程運行于屬于自己的獨立的命名空間。因此容器可以擁有自己的 root文件系統、自己的網絡配置、自己的進程空間,甚至自己的用戶 ID空間。

容器內的進程是運行在一個隔離的環境里,使用起來,就好像是在一個獨立于宿主的系統下操作一樣。這種特性使得容器封裝的應用比直接在宿主運行更加安全。

小結

最后來總結下文章中的知識點

  • Docker容器本質上是宿主機上的進程。
  • 容器進程ID就是宿主機進程ID,因為它們是相同的。
  • 如果Docker守護進程正常響應,請不要直接kill進程。

參考文章

doker&k8s Qun [703906133]

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女