Qué es containerd y cómo funciona

containerd-que-es-y-como-funciona
containerd-que-es-y-como-funciona

En esta lección vas a entender qué es containerd y por qué aparece cuando estudias Docker Engine por dentro. containerd es un runtime de alto nivel que gestiona partes importantes del ciclo de vida de los contenedores: imágenes, snapshots, tareas y comunicación con runtimes de bajo nivel como runc.

No hace falta usar containerd directamente para empezar con Docker, pero entender su papel evita confusiones. Docker no ejecuta todo por sí solo: dockerd coordina la experiencia Docker y se apoya en containerd para manejar operaciones más cercanas al runtime.

👉 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.

Qué es containerd

Problema: Docker necesita una pieza estable que gestione contenedores, imágenes y ejecución de bajo nivel sin mezclar todo con la interfaz de usuario de Docker.

Qué aporta Docker: Docker Engine puede delegar en containerd operaciones del ciclo de vida del contenedor. Así dockerd se centra en la API, objetos Docker y experiencia de usuario, mientras containerd gestiona tareas más próximas al runtime.

PiezaResponsabilidadCómo recordarlo
dockerdAPI y coordinación de objetos Docker.El daemon con el que habla la CLI.
containerdCiclo de vida, imágenes, snapshots y tareas.El runtime de alto nivel.
runcCreación del contenedor OCI en el sistema.La pieza de bajo nivel.
kernel LinuxNamespaces, cgroups y aislamiento real.La base donde corre el proceso.

Cómo encaja en Docker Engine

Cuando ejecutas docker run, la CLI envía una petición a dockerd. El daemon resuelve la intención de Docker, prepara redes, volúmenes y configuración, y usa containerd para crear y gestionar la tarea asociada al contenedor.

docker pull nginx:1.27-alpine
docker run --rm nginx:1.27-alpine nginx -v
# Docker pide al daemon; el daemon delega parte del ciclo de vida en containerd.
  • La imagen puede descargarse y prepararse como contenido utilizable por el runtime.
  • Los snapshots representan el filesystem que verá el contenedor.
  • La tarea es el proceso en ejecución gestionado por el runtime.
  • runc termina creando el contenedor OCI usando primitivas del kernel Linux.

Comandos seguros para observarlo

En muchos sistemas Linux, containerd aparece como servicio propio. Estos comandos son de inspección: no cambian configuración ni borran recursos.

systemctl status containerd
ps -ef | grep '[c]ontainerd'
docker info | grep -i runtime
  • systemctl status containerd muestra si el servicio está activo.
  • ps permite ver el proceso en ejecución.
  • docker info ayuda a ver runtimes disponibles desde la perspectiva de Docker.

Diferencias con dockerd y runc

dockerd

dockerd expone la API de Docker, recibe órdenes de la CLI y coordina objetos como contenedores, imágenes, redes y volúmenes. Es la cara principal de Docker Engine para el usuario.

containerd

containerd gestiona el ciclo de vida de contenedores de forma más genérica. No está limitado a la CLI de Docker y también puede ser usado por otras plataformas que necesitan ejecutar contenedores.

runc

runc es el runtime de bajo nivel compatible con OCI. Se encarga de crear el proceso aislado usando capacidades del kernel. Normalmente no lo invocas a mano en el flujo diario de Docker.

Errores comunes

  • Pensar que containerd sustituye a Docker: en este contexto es una pieza que Docker usa por debajo.
  • Confundir containerd con un contenedor concreto: es un servicio/runtime, no una aplicación dentro de tu stack.
  • Reiniciar containerd sin considerar que puede afectar contenedores en ejecución.
  • Depurar errores de Docker mirando solo la CLI y olvidando que puede fallar el daemon o el runtime.
  • Intentar usar herramientas internas de containerd sin entender namespaces, snapshots o configuración del sistema.

Cuándo profundizar más

Esta lección solo te da el mapa básico. Si estás administrando nodos de Kubernetes, runtimes alternativos, snapshots, CRI o problemas profundos de runtime, conviene estudiar containerd con más detalle y separar esa investigación de una lección introductoria de Docker.

Para el curso Docker, quédate con la idea operativa: si alguien te pregunta qué es containerd, puedes responder que es el runtime de alto nivel que Docker usa para gestionar imágenes, snapshots, tareas y ejecución de contenedores.

Lecciones relacionadas del curso Docker

Documentación oficial y recursos

Entender containerd te ayuda a leer mejor la arquitectura de Docker: no todo vive en la CLI ni en dockerd. Hay una cadena de responsabilidades que baja desde la experiencia de usuario hasta el proceso aislado en Linux.

Cuando tengas claro este mapa, será más fácil distinguir errores de configuración, errores del daemon, problemas de runtime y problemas propios de la aplicación que corre dentro del contenedor.

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 *