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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cpu佔用率100%怎麼解決 cpu佔用率高怎麼辦
- vmware-vmx.exe程式CPU佔用率100%解決方法
- CPU資源佔用100%怎麼辦?cpu佔用率高的解決辦法
- 檢視程式cpu和記憶體佔用率記憶體
- win10系統keyshot佔用率高cpu怎麼辦_win10 keyshot佔用率100%cpu處理方法Win10
- 如何在Docker容器中執行GUI程式DockerGUI
- C#獲取CPU佔用率、記憶體佔用、磁碟佔用、程式資訊C#記憶體
- 使用Systemd執行Docker容器Docker
- 使用docker執行CentOS容器DockerCentOS
- Docker容器中執行.net framework控制檯程式DockerFramework
- Docker容器中執行.Net Core應用程式Docker
- java應用CPU佔用率過高排查Java
- 【閱讀筆記】jvm效能工具-jstat解決100%CPU佔用率分析筆記JVMJS
- Docker命令-docker exec-在執行的容器中執行命令Docker
- Docker 容器 100 問Docker
- windows10cpu佔用率高怎麼辦Windows
- win10系統執行dnf時cpu佔用100怎麼解決Win10
- win10磁碟佔用率100怎麼辦_win10磁碟佔用率100%的解決方法Win10
- JVM找出佔用CPU最高的執行緒JVM執行緒
- rundll32.exe程式佔用率CPU高的原因及解決方法
- 程式猿是如何解決SQLServer佔CPU100%SQLServer
- 在Docker容器中執行ASP.NET MVC應用程式DockerASP.NETMVC
- oracle_CPU佔用率高時的問題定位Oracle
- win10空閒cpu很多cpu佔滿怎麼辦 win10cpu佔用率高怎麼辦Win10
- win10系統玩戰地5出現cpu佔用率高100%如何解決Win10
- Node.js 應用高 CPU 佔用率的分析方法Node.js
- python kubernetes 獲取 pod 的 cpu 佔用率Python
- 差SQL引起CPU使用率100%的效能分析SQL
- eos docker執行後無法執行cleosDocker
- Linux下xorg程式CPU佔用率過高時的一個解決方案Linux
- Docker基礎:查詢映象和執行容器Docker
- top命令找到佔用CPU最高的java執行緒Java執行緒
- Java程式CPU使用率高排查Java
- 程式佔用cpu排序排序
- JAVA CPU100%與執行緒死鎖定位Java執行緒
- 欄位字元型別不匹配導致CPU佔用率高字元型別
- Win10系統磁碟佔用率100%怎麼辦呢?Win10電腦磁碟佔用率100%的解決方法Win10
- C++ 獲取Linux 伺服器CPU佔用率+記憶體空閒率(親測絕對可以執行)C++Linux伺服器記憶體