Docker API: qué es y cómo utilizarla

docker-api
docker-api

En esta lección vas a entender Docker API y por qué existe aunque normalmente uses comandos como docker ps, docker run o docker build. La CLI de Docker es un cliente: por debajo envía peticiones al daemon para consultar, crear, arrancar o borrar objetos.

La API no es solo un detalle interno. Sirve para automatizar tareas, integrar herramientas, inspeccionar el estado del daemon y entender mejor qué ocurre entre tu terminal y Docker Engine. También implica riesgos: si alguien controla la API o el socket del daemon, puede tener mucho control sobre el host.

👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis.

🐳 Si quieres aprender más de Docker, pincha en este curso de Docker gratis.

Docker API

Problema: los comandos de Docker parecen acciones locales simples, pero en realidad necesitan comunicarse con un servicio que gestiona imágenes, contenedores, redes, volúmenes y configuración.

Qué aporta Docker: la API expone una forma estándar de hablar con el daemon. La CLI oficial la usa, y otras herramientas también pueden usarla para automatizar operaciones o consultar el estado del motor.

PiezaQué haceEjemplo
Docker CLICliente que traduce comandos a peticiones.docker ps, docker run, docker build.
Docker APIInterfaz HTTP del daemon.Endpoints para contenedores, imágenes, redes y versión.
dockerdDaemon que recibe peticiones y coordina Docker Engine.Gestiona objetos y delega en runtimes.
Socket UnixCanal local habitual en Linux./var/run/docker.sock.

Cómo la usa la CLI

Cuando ejecutas un comando, la CLI prepara una petición para el daemon. Por ejemplo, listar contenedores no significa que la CLI lea todos los procesos por su cuenta: pide esa información al servidor de Docker.

docker ps
# La CLI usa la API del daemon por debajo para pedir información similar.

Esta separación ayuda a entender errores típicos: si la parte Server de docker version falla, normalmente el problema no está en el comando, sino en la comunicación con el daemon o en el servicio Docker.

Consultas básicas con el socket Unix

En Linux, el daemon suele escuchar en un socket Unix local. Puedes consultarlo con curl para entender la idea, sin abrir ningún puerto de red. Estos ejemplos son de lectura y sirven para laboratorio.

curl --unix-socket /var/run/docker.sock http://localhost/_ping
curl --unix-socket /var/run/docker.sock http://localhost/version
curl --unix-socket /var/run/docker.sock http://localhost/containers/json
  • /_ping comprueba si el daemon responde.
  • /version muestra información del servidor y de la API.
  • /containers/json lista contenedores visibles para el daemon.

Importante: poder leer el socket normalmente implica permisos altos. No des acceso a /var/run/docker.sock a usuarios o contenedores si no entiendes el impacto.

Automatización y casos de uso

  • Paneles internos que muestran contenedores, imágenes o consumo de recursos.
  • Herramientas de CI/CD que construyen imágenes o preparan entornos efímeros.
  • Scripts de auditoría que consultan versión, contenedores o configuración.
  • Integraciones que necesitan reaccionar ante eventos del daemon.

Aun así, no conviertas la API en un atajo inseguro. Muchas tareas se pueden resolver con la CLI, Compose o herramientas ya preparadas sin exponer el daemon a la red.

Riesgos de seguridad

Exponer TCP sin protección

Abrir el daemon por TCP sin TLS ni autenticación fuerte es peligroso. Si alguien alcanza ese endpoint, puede crear contenedores, montar rutas del host o manipular imágenes.

# Ejemplo de riesgo: NO expongas esto sin TLS y control de acceso
dockerd -H tcp://0.0.0.0:2375

Montar el socket en contenedores

Montar /var/run/docker.sock dentro de un contenedor puede parecer cómodo para automatizar despliegues, pero ese contenedor podría controlar el host a través del daemon. Es una decisión de seguridad, no solo una opción técnica.

Permisos del grupo docker

En muchos sistemas, pertenecer al grupo docker permite hablar con el daemon local. Trátalo como un permiso sensible y no como un simple acceso de usuario normal.

Errores comunes

  • Confundir Docker API con Docker Hub API: una habla con tu daemon; la otra con servicios de registro o cuentas.
  • Pensar que la API solo sirve para desarrolladores avanzados; también ayuda a entender cómo trabaja la CLI.
  • Abrir el puerto 2375 para “probar rápido” y olvidarlo expuesto.
  • Dar acceso al socket a contenedores de terceros sin aislar ni auditar el riesgo.
  • Depurar un error de CLI sin comprobar primero si el daemon responde.

Lecciones relacionadas del curso Docker

Documentación oficial y recursos

Entender la API te ayuda a ver Docker como un sistema cliente-servidor: la CLI pide, el daemon decide y los runtimes ejecutan. Esa idea aclara muchos errores de comunicación, permisos y automatización.

Para empezar, usa la API solo en laboratorio y de forma local. Si necesitas exponerla o integrarla en producción, revisa TLS, permisos, auditoría y alternativas más seguras antes de abrir acceso al daemon.

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *