Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么将用户添加到docker用户组允许docker作为非root用户运行?_Docker - Fatal编程技术网

为什么将用户添加到docker用户组允许docker作为非root用户运行?

为什么将用户添加到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需要根权限才能运行。指南给出了关于以非root用户身份管理docker的说明,它本质上是将用户添加到
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
不会再次提示输入密码,因为它会被缓存一段时间