tutorial ¿Alguien puede explicar docker.sock



docker windows (1)

docker.sock es el socket UNIX que el demonio Docker está escuchando. Es el principal punto de entrada para Docker API. También puede ser un socket TCP, pero de manera predeterminada por razones de seguridad, Docker usa de manera predeterminada el socket UNIX.

El cliente cli de Docker usa este socket para ejecutar los comandos de docker de manera predeterminada. También puede anular esta configuración.

Puede haber diferentes razones por las que puede necesitar montar el zócalo Docker dentro de un contenedor. Como lanzar nuevos contenedores desde otro contenedor. O para fines de descubrimiento y registro de servicios automáticos. Esto aumenta la superficie de ataque, por lo que debe tener cuidado si monta el zócalo docker dentro de un contenedor, hay códigos confiables que se ejecutan dentro de ese contenedor; de lo contrario, simplemente puede comprometer su host que ejecuta docker daemon, ya que Docker lanza de forma predeterminada todos los contenedores como root.

El Docker Socket tiene un grupo Docker en la mayoría de las instalaciones, por lo que los usuarios dentro de ese grupo pueden ejecutar comandos Docker contra Docker Socket sin permiso de root, pero los contenedores Docker reales aún obtienen permiso de root ya que Docker Daemon se ejecuta como root de manera efectiva (necesita permiso de root para acceder al espacio de nombres y cgroups) .

Espero que responda tu pregunta.

Más información: https://docs.docker.com/engine/reference/commandline/dockerd/#examples

Estoy tratando de entender la razón real para montar docker.sock en el archivo docker-compose.yml . ¿Es para autodescubrimiento?

volumes:
  - /var/run/docker.sock:/var/run/docker.sock




docker