我试图了解在 docker.sock
文件中安装 0x25181231343141 的实际原因。是否用于自动发现?
volumes:
- /var/run/docker.sock:/var/run/docker.sock
最佳答案
docker.sock
是 Docker 守护程序正在监听的 UNIX 套接字。它是 Docker API 的主要入口点。它也可以是 TCP 套接字,但出于安全原因,默认情况下 Docker 默认使用 UNIX 套接字。
Docker cli 客户端默认使用这个套接字来执行 docker 命令。您也可以覆盖这些设置。
您可能需要在容器内挂载 Docker 套接字的原因可能不同。就像从另一个容器中启动新容器一样。或者用于自动服务发现和日志记录目的。这会增加攻击面,因此如果您在容器内安装 docker socket 时应该小心,该容器内运行着受信任的代码,否则您可以简单地危害运行 docker daemon 的主机,因为默认情况下 Docker 以 root 身份启动所有容器。
Docker 套接字在大多数安装中都有一个 docker 组,因此该组中的用户可以在没有 root 权限的情况下对 docker socket 运行 docker 命令,但实际的 docker 容器仍然获得 root 权限,因为 docker daemon 以 root 有效运行(它需要 root 权限才能访问命名空间和 cgroups) .
我希望它能回答你的问题。
更多信息:https://docs.docker.com/engine/reference/commandline/dockerd/#examples
关于docker - 谁能解释一下 docker.sock,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35110146/