任何人都可以解释docker.sock
我想了解在docker-compose.yml文件中安装docker.sock的实际原因。 是否用于自动发现?
volumes: - /var/run/docker.sock:/var/run/docker.sock
docker.sock
是Docker守护进程正在侦听的UNIX套接字。 这是Docker API的主要入口点。 它也可以是TCP套接字,但由于安全原因,默认情况下,默认情况下,Docker默认使用UNIX套接字。
Docker cli客户端默认使用这个套接字来执行docker命令。 您也可以覆盖这些设置。
可能有不同的原因,你可能需要在容器中安装Docker套接字。 就像从另一个容器中启动新的容器一样。 或者用于自动服务发现和logging目的。 这会增加攻击面,因此如果在容器中安装docker套接字,那么在容器中运行受信任的代码时,应该小心,否则,您可以简单地危害运行docker守护进程的主机,因为默认情况下,Docker将以root身份启动所有容器。
Docker套接字在大多数安装中都有一个docker组,因此该组中的用户可以在没有root权限的情况下对docker套接字运行docker命令,但是实际的docker容器仍然获得root权限,因为docker守护进程有效地以root身份运行(它需要根权限才能访问命名空间和cgroups) 。
我希望它能回答你的问题。
更多信息: https : //docs.docker.com/engine/reference/commandline/dockerd/#examples
- Spring Boot无法读取Docker中的application.properties
- 如何从gunicorn或nginx提供静态文件
- Docker selenium 2.53不能用envvariables覆盖maxInstances和maxSession
- 在docker容器中安装包
- 在docker中,我怎样才能将所有的nvidia设备传递给一个容器?
- 在Kubernetes或Google Container Engine中等待作业/ Pod完成
- 具有Docker的Apache Tomcat集群(5个节点)
- RHEL7 docker容器是否需要订阅?
- Docker组成每个networking添加本地IP地址