docker執行容器後agetty程式cpu佔用率100%

lhrbest發表於2020-05-11


docker執行容器後agetty程式cpu佔用率100%


最近在使用 docker容器的時候,發現宿主機的 agetty程式 cpu佔用率達到 100%

Google上搜了下,引起這個問題的原因是在使用 "docker run"執行容器時使用了 "/sbin/init""--privileged"引數。

使用 /sbin/init啟動容器並加上 --privileged引數,相當於 docker容器獲得了宿主機的全權委託許可權。這時 docker容器內部的 init與宿主機的 init產生了混淆。

引用 google到的一段話:

 I've done all my testing on them without using  --privileged, especially since that's so dangerous (effectively, you're telling this second init process on your system that it's cool to go ahead and manage your system resources, and then giving it access to them as well). I always think of  --privileged  as a hammer to be used very sparingly.

 

出於對安全的考慮,在啟動容器時, docker容器裡的系統只具有一些普通的 linux許可權,並不具有真正 root使用者的所有許可權。而 --privileged=true引數可以讓 docker容器具有 linux root使用者的所有許可權。

 

為了解決這個問題, docker後來的版本中 docker run增加了兩個選項引數 "--cap-add""--cap-drop"

--cap-add : 獲取 default之外的 linux的許可權

--cap-drop: 放棄 default linux許可權

 

docker官網的文件中可以查到, docker容器具有的 default許可權及 --cap-add可以獲取到的擴充套件許可權如下:

Default 許可權:

   所以,在執行容器時,可以不用 --privileged引數的儘量不用,用 --cap-add引數替代。如果必須使用 --privileged=true引數的,可以透過在宿主機和容器中執行以下命令將 agetty關閉。

shell> systemctl stop getty@tty1.service

shell> systemctl mask getty@tty1.service

 

 

參考資料:





1、查到agetty程式是哪一個容器的


docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}' | grep $(ps -ef|grep <pid> |grep -v grep |awk '{print $3}')


例子: 例如top檢視到的agetty程式PID是41888,則將<pid>換成41888

命令為:


docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}' | grep $(ps -ef|grep 41888 |grep -v grep |awk '{print $3}')


執行後查到該容器


6573, /dev


2、進入容器停掉agetty服務

systemctl stop getty@tty1.service && systemctl mask getty@tty1.service





About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub、部落格園、CSDN和個人微 信公眾號( DB寶)上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文CSDN地址: https://blog.csdn.net/lihuarongaini

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:

........................................................................................................................

● QQ群號: 230161599 、618766405

● 微 信群:可加我微 信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2020-05-01 06:00 ~ 2020-05-30 24:00 在西安完成

● 最新修改時間:2020-05-01 06:00 ~ 2020-05-30 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁https://lhr.ke.qq.com/

........................................................................................................................

使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( DB寶)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2691334/,如需轉載,請註明出處,否則將追究法律責任。

相關文章