为什么将用户添加到docker用户组允许docker作为非root用户运行?
Docker需要根权限才能运行。指南给出了关于以非root用户身份管理docker的说明,它本质上是将用户添加到为什么将用户添加到docker用户组允许docker作为非root用户运行?,docker,Docker,Docker需要根权限才能运行。指南给出了关于以非root用户身份管理docker的说明,它本质上是将用户添加到docker用户组,之后我可以在不使用sudo的情况下运行docker命令。有人能解释为什么这样做吗?您必须区分docker命令行工具docker和后台守护程序dockerd。守护进程以root用户身份运行,并负责运行容器。命令行工具docker给出了守护进程的指令,以及如何做。默认情况下,此通信通过unix套接字/var/run/docker.sock完成。一个ls-l产生 srw-
docker
用户组,之后我可以在不使用sudo
的情况下运行docker命令。有人能解释为什么这样做吗?您必须区分docker命令行工具docker
和后台守护程序dockerd
。守护进程以root用户身份运行,并负责运行容器。命令行工具docker
给出了守护进程的指令,以及如何做。默认情况下,此通信通过unix套接字/var/run/docker.sock
完成。一个ls-l
产生
srw-rw---- 1 root docker 0 Aug 20 11:22 /var/run/docker.sock
您可以看到,属于组docker
的用户能够写入套接字,因此能够给出可以使用root权限执行的守护进程指令
您也可以使用守护进程在网络端口上侦听。类似地,您可以使用命令行工具通过环境变量docker\u HOST
使用远程docker守护程序。通过这样做,您可以向远程主机上的docker守护进程发出指令
还有一点值得一提。当您使用
sudo
将用户添加到组中,然后使用sudo
执行其他命令时,通常sudo
不会再次提示输入密码,因为它会被缓存一段时间