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
參考資料:
https://github.com/docker/docker/issues/4040
https://docs.docker.com/engine/reference/run/
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寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● 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 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店: https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麥苗出版的資料庫類叢書: 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佔用率高怎麼辦
- win10系統keyshot佔用率高cpu怎麼辦_win10 keyshot佔用率100%cpu處理方法Win10
- Docker容器中執行.net framework控制檯程式DockerFramework
- Docker容器中執行.Net Core應用程式Docker
- 使用docker執行CentOS容器DockerCentOS
- Docker 容器 100 問Docker
- win10磁碟佔用率100怎麼辦_win10磁碟佔用率100%的解決方法Win10
- win10系統執行dnf時cpu佔用100怎麼解決Win10
- java應用CPU佔用率過高排查Java
- python kubernetes 獲取 pod 的 cpu 佔用率Python
- Docker命令-docker exec-在執行的容器中執行命令Docker
- windows10cpu佔用率高怎麼辦Windows
- win10系統玩戰地5出現cpu佔用率高100%如何解決Win10
- rundll32.exe程式佔用率CPU高的原因及解決方法
- JVM找出佔用CPU最高的執行緒JVM執行緒
- 在Docker容器中執行ASP.NET MVC應用程式DockerASP.NETMVC
- JAVA CPU100%與執行緒死鎖定位Java執行緒
- win10空閒cpu很多cpu佔滿怎麼辦 win10cpu佔用率高怎麼辦Win10
- Oracle效能優化-資料庫CPU使用率100%Oracle優化資料庫
- mysql資料庫Cpu利用率100%問題排查MySql資料庫
- Win10系統磁碟佔用率100%怎麼辦呢?Win10電腦磁碟佔用率100%的解決方法Win10
- eos docker執行後無法執行cleosDocker
- Node.js 應用高 CPU 佔用率的分析方法Node.js
- 執行sed命令卡死CPU消耗100%一例分析
- Java程式CPU使用率高排查Java
- C++ 獲取Linux 伺服器CPU佔用率+記憶體空閒率(親測絕對可以執行)C++Linux伺服器記憶體
- Google Chrome發現新Bug CPU使用率飆升至100%GoChrome
- top命令找到佔用CPU最高的java執行緒Java執行緒
- Win10系統下IAStorDataSvc程式佔CPU使用率高怎麼解決Win10ASTC程式
- gpu佔用率100%正常嗎 電腦gpu佔用高怎麼解決GPU
- 系統空閒程式佔用大量CPU是什麼原因_系統空閒程式CPU使用率高怎麼解決
- win10系統中WMI程式佔用cpu使用率高怎麼解決Win10
- 在Docker中,如何停止所有正在執行的容器?Docker
- Docker中Mysql容器內如何執行SQL檔案?DockerMySql
- 在Docker容器內執行 vi 編輯器 | BaeldungDocker
- 從已執行容器獲取 docker run 引數Docker
- win10解決antimalware service executable cpu佔用率高的方法Win10
- 如何處理MySQL經常出現CPU佔用率達到99%MySql