我正在学习Docker,而且我非常喜欢它。
不过我不明白,为什么docker需要root权限来制作容器、读取日志等。
我读过一些像这样的文章
https://docs.docker.com/articles/security/
但我只看到“docker需要root权限,因为它可以访问根文件夹”。好吧,我不介意以非 root 身份运行 docker,并只允许他们访问外部系统中非 root 用户拥有的文件夹。
为什么这是一个问题?
答案1
一些“酷”的 docker 功能,如端口绑定、安装文件系统等,严格要求docker.io
守护进程以超级用户权限运行。
然而,你能使用docker
命令行工具docker.io
如果守护进程正在监听网络端口或者它的 unix 套接字可供用户读取和写入,则无需 root 权限。
这是严重的安全违规,通常不应使用。
有关 Docker 安全性的其他详细信息:https://docs.docker.com/articles/security/
答案2
根据这些链接
- https://github.com/docker/docker/issues/1034
- https://github.com/docker/docker/issues/2919
- http://s3hh.wordpress.com/2013/07/19/creating-and-using-containers-without-privilege/(仅略有相关)
如果我理解正确的话,如果没有 root 权限,docker 就无法拥有网络。
我不确定这是否就是全部。