En esta lección vas a entender qué es dockerd y por qué aparece cuando estudias Docker Engine por dentro. dockerd es el daemon principal de Docker: escucha peticiones de la CLI o de la API, coordina objetos como imágenes, contenedores, redes y volúmenes, y delega la ejecución real en componentes de nivel más bajo.
No necesitas memorizar todos los detalles internos para usar Docker, pero sí conviene saber qué papel cumple el daemon. Así entenderás mejor por qué un contenedor no arranca si el servicio Docker está parado, por qué el socket de Docker es sensible y cuándo tiene sentido revisar logs del servicio.
👉 Y recuerda, si quieres aprender más de Linux, visita el curso de Linux gratis.
🐳 Si quieres aprender más de Docker, visita el curso de Docker gratis.
Qué es dockerd y cómo funciona
Problema: cuando escribes un comando como docker run, no estás hablando directamente con el kernel ni con runc. Estás pidiendo a Docker Engine que coordine varias piezas por ti.
Qué aporta Docker: dockerd centraliza esa coordinación. Recibe la petición, valida permisos, consulta imágenes, crea redes o volúmenes cuando hace falta y se apoya en containerd para gestionar el ciclo de vida del contenedor.
| Pieza | Papel práctico | Ejemplo |
|---|---|---|
| docker CLI | Cliente que envía órdenes. | docker run, docker ps, docker build. |
| dockerd | Daemon que expone la API y coordina objetos Docker. | Recibe la orden y organiza la operación. |
| containerd | Runtime de alto nivel para contenedores. | Gestiona ciclo de vida, imágenes y snapshots. |
| runc | Runtime de bajo nivel OCI. | Crea el contenedor usando namespaces y cgroups. |
Cómo funciona dockerd dentro de Docker Engine
Docker Engine no es una sola pieza mágica. Normalmente incluye cliente, daemon, API, gestión de imágenes, redes, volúmenes y conexión con runtimes. dockerd es el punto que une la experiencia de usuario con esos componentes internos.
- La CLI envía una petición al daemon por un socket local o por una API remota configurada.
- El daemon comprueba qué hay que hacer: crear contenedor, descargar imagen, construir, listar, borrar o consultar logs.
- Para ejecutar contenedores, delega en containerd y este termina usando runc para crear el proceso aislado.
- El daemon mantiene el estado de objetos Docker y aplica opciones de configuración globales.
Cómo comprobar el estado de dockerd
Estos comandos no cambian configuración: solo sirven para comprobar si el servicio está activo, si el proceso existe y si la CLI puede hablar con el daemon.
systemctl status docker
ps -ef | grep '[d]ockerd'
docker version- systemctl status docker muestra el estado del servicio en sistemas Linux con systemd.
- ps permite confirmar si el proceso dockerd está corriendo.
- docker version ayuda a diferenciar versión del cliente y del servidor. Si falla la parte Server, normalmente la CLI no puede comunicarse con el daemon.
Configuración de dockerd y riesgos del daemon
daemon.json
Muchas opciones globales se definen en daemon.json. Es útil para logs, rutas de datos, registries, proxies o ajustes del daemon, pero no conviene tocarlo sin backup ni sin entender el impacto.
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}Socket de Docker
El socket local de Docker suele estar en /var/run/docker.sock. Dar acceso a ese socket a un usuario o a un contenedor puede equivaler a darle mucho control sobre el host. No lo montes dentro de contenedores si no entiendes el riesgo.
API remota
Exponer la API de Docker sin TLS ni controles de acceso es peligroso. Si necesitas administración remota, usa mecanismos seguros y revisa la documentación oficial antes de abrir puertos.
Errores comunes con dockerd
- Confundir dockerd con Docker Desktop: Desktop es una aplicación de escritorio; dockerd es el daemon que corre dentro del entorno Linux o de la VM.
- Pensar que reiniciar un contenedor reinicia el daemon: son niveles distintos.
- Editar daemon.json y olvidar reiniciar el servicio Docker para aplicar cambios.
- Montar el socket de Docker en un contenedor como atajo de automatización sin evaluar el riesgo.
- Usar comandos destructivos de limpieza cuando el problema real era que la CLI no podía comunicarse con el daemon.
Cuándo profundizar en dockerd
Esta lección se queda en la base operativa. Si estás depurando problemas reales de arranque, permisos, proxy, DNS, logs del daemon o cambios en data-root, conviene separar esa investigación en una lección de Docker Engine o troubleshooting avanzado.
Para empezar, quédate con la idea principal: si alguien te pregunta qué es dockerd, la respuesta corta es que recibe peticiones, coordina objetos de Docker y se apoya en runtimes para ejecutar contenedores.
Documentación oficial y recursos
- dockerd CLI reference: opciones oficiales del daemon.
- Protect the Docker daemon socket: guía oficial sobre seguridad del socket.
- Docker Engine documentation: documentación oficial del motor.
Lecciones relacionadas del curso
- Docker Engine: profundiza en el motor de Docker y su administración.
- qué problema resuelve Docker: repasa el contexto antes de entrar en internals.
- cómo funciona Docker: conecta daemon, contenedores e imágenes.

