Repolode
Tecnativa

Tecnativa/docker-socket-proxy

Un proxy HAProxy centrado en la seguridad que se interpone entre el socket de Docker y los servicios, y permite autorizar o bloquear secciones específicas de la API de Docker mediante variables de entorno.

Estrellas
2,850
Forks
211
Issues abiertos
57
Último commit
hace 2 meses

¿Qué es?

Docker Socket Proxy se sitúa entre un servicio y el socket de Docker, y filtra qué solicitudes a la API de Docker se aceptan. Montar el socket sin restricciones en un contenedor equivale, en la práctica, a otorgar acceso root al host, aunque algunos servicios lo necesitan para reaccionar a eventos o administrar contenedores. Este proxy permite exponer únicamente las partes de la API que necesita cada servicio.

El proxy se basa en la imagen de HAProxy sobre Alpine e incluye un archivo de configuración pequeño. El acceso a cada sección de la API se controla con una variable de entorno: se establece en 1 para permitirlo o en 0 para revocarlo. Las solicitudes a secciones bloqueadas reciben una respuesta HTTP 403. De forma predeterminada, se permiten Events, ping y version, mientras que se bloquean secciones críticas para la seguridad, como AUTH y SECRETS, y las operaciones de escritura mediante POST.

La imagen no incluye TLS y está diseñada para ejecutarse en una red privada de Docker, no para exponerse públicamente. Permite configurar la ruta del socket mediante SOCKET_PATH, para sistemas como balenaOS, y definir LOG_LEVEL. Admite varias versiones de la API de Docker y las imágenes se publican en Docker Hub y GitHub Container Registry.

Funciones clave

  • 01Permite o bloquea secciones de la API de Docker mediante variables de entorno específicas para cada sección.
  • 02Devuelve HTTP 403 para las solicitudes bloqueadas.
  • 03Permite limitar el proxy a acceso de solo lectura deshabilitando POST.
  • 04Admite una ruta de socket personalizada mediante SOCKET_PATH.
  • 05Está basado en Alpine y HAProxy, con un archivo de configuración pequeño.
  • 06Admite varias versiones de la API de Docker, de la 1.27 a la 1.51.

Casos de uso

  • Dar a un contenedor de monitoreo o de proxy inverso acceso de solo lectura a los eventos de los contenedores.
  • Limitar una herramienta de CI o automatización para que no pueda ejecutar operaciones privilegiadas en el host.
  • Exponer únicamente las secciones de la API de Docker que necesita una herramienta de descubrimiento de servicios como Traefik.

Inicio rápido

  1. 1

    Ejecuta el contenedor proxy con acceso al Docker socket

    docker container run -d --privileged --name dockerproxy -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:2375:2375 tecnativa/docker-socket-proxy
  2. 2

    Configura tu cliente Docker local para que use el proxy

    export DOCKER_HOST=tcp://localhost:2375
  3. 3

    Comprueba la conexión con docker version

    docker version

Antes de usarlo

  • Según el README, el contenedor debe ejecutarse con --privileged para conectarse al Docker socket.
  • La imagen no admite TLS, por lo que el tráfico se transmite mediante HTTP sin cifrar y debe mantenerse en una red restringida.
  • El acceso a cada sección de la API de Docker está desactivado de forma predeterminada en las áreas críticas para la seguridad y debe concederse de forma deliberada.

En colecciones

Temas

Preguntas frecuentes

¿Qué es docker-socket-proxy?
Un proxy HAProxy centrado en la seguridad que se interpone entre el socket de Docker y los servicios, y permite autorizar o bloquear secciones específicas de la API de Docker mediante variables de entorno. Docker Socket Proxy se sitúa entre un servicio y el socket de Docker, y filtra qué solicitudes a la API de Docker se aceptan. Montar el socket sin restricciones en un contenedor equivale, en la práctica, a otorgar acceso root al host, aunque algunos servicios lo necesitan para reaccionar a eventos o administrar contenedores. Este proxy permite exponer únicamente las partes de la API que necesita cada servicio.
¿docker-socket-proxy es gratuito? ¿Qué licencia tiene?
docker-socket-proxy es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿docker-socket-proxy sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de docker-socket-proxy fue el 31 ago 2026.
¿Para qué puedo usar docker-socket-proxy?
Dar a un contenedor de monitoreo o de proxy inverso acceso de solo lectura a los eventos de los contenedores. Limitar una herramienta de CI o automatización para que no pueda ejecutar operaciones privilegiadas en el host. Exponer únicamente las secciones de la API de Docker que necesita una herramienta de descubrimiento de servicios como Traefik.
¿Cómo se instala docker-socket-proxy?
Ejecuta el contenedor proxy con acceso al Docker socket: docker container run -d --privileged --name dockerproxy -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:2375:2375 tecnativa/docker-socket-proxy Configura tu cliente Docker local para que use el proxy: export DOCKER_HOST=tcp://localhost:2375 Comprueba la conexión con docker version: docker version
¿Dónde consigo docker-socket-proxy?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Tecnativa/docker-socket-proxy

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados