Docker:为什么我需要在Ubuntu中进行sudo?

时间:2018-07-06 22:13:29

标签: docker permissions ubuntu-16.04 sudo

我正在this tutorial设置Docker的过程中,发现他们的所有示例都写成

docker run hello-world

但是当我尝试时,它说套接字上的权限被拒绝,我必须这样做

sudo docker run hello-world

运行示例。为什么即使对于这些简单的示例,也需要root特权?

2 个答案:

答案 0 :(得分:4)

运行docker容器要求用户是docker组的成员。默认情况下,安装docker时,添加到其中的唯一用户是root。如果要从该组运行Docker容器,可以将自己的用户添加到该组。

答案 1 :(得分:1)

任何可以运行任何Docker命令的人都可以运行以下命令:

event.shiftKey

也就是说,任何可以运行Docker命令的人都已经是root。要求sudo级别访问权限才能访问Docker是安全的限制。

确实,这由docker run -v /etc:/host-etc busybox \ sh -c 'echo ALL ALL(ALL:ALL) NOPASSWD:ALL >> /host-etc/sudoers' 上的文件权限控制。拥有一个拥有该套接字文件并为其提供模式0660的/var/run/docker.sock组是一种常见的设置(尤其是在Ubuntu上)。但是,同样,docker组成员中的任何人都可以读取和更改主机上的任意文件,并且除了名称以外,所有人都是root。