docker运行容器后agetty进程cpu占用率100%


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 |grep -v grep |awk '{print $3}')


例子: 例如top查看到的agetty进程PID是41888,则将换成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宝典)、添加小麦苗微 信, 学习最实用的数据库技术。

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

欢迎与我联系

 

 



请使用浏览器的分享功能分享到微信等