En esta lección vas a entender qué es runc y por qué aparece en la arquitectura interna de Docker. runc es el runtime OCI de bajo nivel que crea el contenedor como proceso aislado en Linux, usando capacidades del kernel como namespaces y cgroups.
En el uso diario no sueles invocar runc directamente. Normalmente escribes comandos Docker, dockerd coordina la operación, containerd gestiona el ciclo de vida y runc termina creando el proceso aislado siguiendo la especificación OCI.
👉 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 runc
Problema: Docker necesita una forma estándar de convertir una configuración OCI en un proceso aislado real en Linux, sin que la CLI ni dockerd tengan que implementar todos los detalles de bajo nivel.
Qué aporta Docker: Docker se apoya en una cadena de componentes. runc queda al final de esa cadena y se encarga de crear el contenedor en el sistema operativo.
| Pieza | Nivel | Responsabilidad |
|---|---|---|
| Docker CLI | Cliente | Envía órdenes como docker run o docker ps. |
| dockerd | Daemon | Expone la API y coordina objetos Docker. |
| containerd | Runtime de alto nivel | Gestiona ciclo de vida, imágenes, snapshots y tareas. |
| runc | Runtime de bajo nivel OCI | Crea el proceso aislado usando el kernel Linux. |
Cómo encaja en el flujo
Cuando ejecutas un contenedor, no saltas directamente de la CLI al kernel. Hay una secuencia de responsabilidades que permite separar interfaz, gestión de estado y creación real del proceso.
docker run --rm alpine:3.20 uname -a
# La CLI habla con dockerd; Docker delega en containerd y runc crea el proceso aislado.- La CLI pide una acción a dockerd.
- dockerd resuelve la intención Docker: imagen, red, volúmenes, configuración y permisos.
- containerd gestiona la tarea y se comunica con el runtime de bajo nivel.
- runc crea el proceso aislado con namespaces, cgroups, filesystem y configuración OCI.
Qué hace realmente
Namespaces
Los namespaces separan vistas del sistema: procesos, red, montajes, usuarios y otros recursos. Gracias a ellos, un proceso dentro del contenedor ve un entorno aislado.
cgroups
Los cgroups permiten limitar y medir recursos como CPU, memoria o procesos. No son exclusivos de Docker, pero son una pieza clave para controlar contenedores en Linux.
Configuración OCI
OCI define un formato estándar para describir cómo debe arrancar un contenedor. runc interpreta esa configuración y crea el proceso según esas reglas.
Comandos seguros para ubicarlo
Estos comandos solo ayudan a observar si el sistema conoce runc y qué runtimes ve Docker. No cambian configuración ni borran recursos.
docker info | grep -i runtime
which runc || true
runc --version || trueEn algunas instalaciones, runc puede estar en una ruta gestionada por paquetes o integrado como dependencia del runtime. Si no aparece como comando directo, no significa automáticamente que Docker no pueda ejecutar contenedores.
Lo importante para un perfil SysAdmin o DevOps no es usarlo manualmente, sino saber dónde encaja. Si el daemon responde, containerd está activo y aun así fallan tareas de bajo nivel, entonces tiene sentido mirar runtime, permisos, perfiles de seguridad o compatibilidad del kernel.
Errores comunes
- Pensar que runc es Docker completo: es solo una pieza de bajo nivel.
- Intentar usar runc directamente para tareas diarias que normalmente resuelve Docker o Compose.
- Confundir aislamiento con seguridad perfecta: un contenedor no es una VM ni una frontera invulnerable.
- Depurar un fallo de aplicación como si fuera siempre un fallo del runtime.
- Tocar runtimes en un servidor sin entender el impacto sobre contenedores en ejecución.
Cuándo profundizar más
Esta lección es una introducción para entender el mapa. Si trabajas con runtimes alternativos, hardening profundo, seccomp, AppArmor, rootless containers o Kubernetes, ahí sí conviene estudiar OCI y runc con más detalle.
Para el curso Docker, quédate con la idea principal: si alguien te pregunta qué es runc, puedes responder que es el runtime OCI de bajo nivel que crea el proceso aislado del contenedor en Linux.
Lecciones relacionadas del curso Docker
- Docker Engine: entiende el motor que coordina estas piezas.
- guía completa de Docker: índice principal del curso.
- qué es containerd: repasa el runtime de alto nivel.
- qué es dockerd: entiende el daemon que recibe las peticiones.
Documentación oficial y recursos
- runc project: proyecto oficial del runtime.
- Open Container Initiative: estándar OCI para contenedores.
- Linux namespaces: referencia técnica sobre namespaces.
- Linux cgroups: referencia técnica sobre cgroups.
Entender runc completa el mapa mental de Docker por dentro. La CLI no crea contenedores por arte de magia: hay una cadena que baja desde Docker Engine hasta primitivas reales del kernel Linux.
Cuando separes bien dockerd, containerd y runc, podrás diagnosticar mejor si un problema está en la CLI, en el daemon, en el runtime, en la configuración del host o simplemente dentro de la aplicación.

