docker容器中root用户无法查看其它用户运行进程的PID

使用Dockerfile构建的容器, 无法看到非root用户运行程序的PID,如下图所示:

docker容器中root用户无法查看其它用户运行进程的PID

百度上说是netstat的bug,看起来却像是权限问题,最后Google找到了,docker为了容器的安全,容器中的root权限有限制,与宿主机上root权限是不一样的,启动容器加上--cap-add=SYS_PTRACE,即可看到PID,官网上也有相关解释。

Runtime privilege and Linux capabilities

--cap-add: Add Linux capabilities
--cap-drop: Drop Linux capabilities
--privileged=false: Give extended privileges to this container
--device=[]: Allows you to run devices inside the container without the --privileged flag.
SYS_PTRACETrace arbitrary processes using ptrace.

docker run --privileged时,Docker将拥有访问主机所有设备的权限,这个给的权限太大不安全,不推荐使用。

参考:

  1. Docker解析:配置与权限管理

  2. docker中的权限类型

  3. Docker run reference

  4. Docker安全性(一)——Docker容器真的安全吗?

  5. Docker安全性(二)——带来了新的安全功能给Docker

anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/2522.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注