Docker es una caja de bombones
Vamos a comprender cómo funcionan los contenedores y cómo Docker hace su magia.

¿Alguna vez te ha pasado que tiras un docker run o levantas un docker-compose, todo funciona de maravilla, pero por dentro te da un frío olímpico?
Ese sudor frío que aparece cuando piensas: “Dios, mío, si esto explota en producción y me preguntan por qué se cayó, no voy a saber qué diablos responder”.
Tranquilo, manín. Respira hondo. Siéntate, tómate un café o un vasito de agua, que hoy vamos a desarmar ese miedo.
A casi todos nos ha pegado el síndrome del impostor con esta vaina. Nos venden que un contenedor es una especie de “máquina chiquita y mágica”, y uno se queda con la idea de que adentro hay un sistema operativo completo corriendo en miniatura.
Te tengo una buena noticia: no hay magia, y es muchísimo más simple de lo que te han hecho creer.
La famosa caja de bombones de Navidad
Seguro has visto (o te han regalado) esas cajas surtidas de bombones que aparecen por todos lados en época navideña.
Mírala en tu cabeza por un segundo:
- Tienes la caja exterior de cartón duro.
- Adentro hay una bandeja plástica con un montón de recuadros o huequitos individuales.
- En cada huequito reposa un chocolate: un chocolate blanco, uno relleno de caramelo, otro amargo con almendra, o quizás uno con una sorpresa adentro.
Bueno, mi gente: eso mismo es Docker.
- La caja grande es tu sistema operativo anfitrión (sea Ubuntu, Mint, Arch, Windows o lo que tengas montado en tu máquina).
- La bandeja plástica con los recuadros es el motor de contención del sistema.
- Y cada bombón es un contenedor.
Cada chocolatico está ahí tranquilito en su propio espacio. Tiene su propio sabor, su propio relleno y sus propias características (los procesos que tú le pongas dentro). Pero fíjate en un detalle clave: ningún bombón tiene su propia caja de cartón aparte. Todos descansan sobre la misma base y comparten la misma caja.
Un contenedor no es una máquina virtual pesada. Es simplemente un proceso común y corriente de Linux al que le armaron un recuadro para que no se mezcle con el vecino.
El truco del kernel: Dos reglas para que no haya desorden
Para que los chocolates no se derritan unos sobre otros ni se peleen por el espacio de la caja, el sistema operativo (el Kernel de Linux) aplica solo dos trucos de ingeniería:
1. Los “antifaces” (Namespaces)
Esto es lo que el chocolate puede ver.
A cada bombón le ponemos una pequeña pared alrededor. Desde la perspectiva de ese chocolate, él se cree el rey del mundo: cree que es el único que existe, que tiene su propia casa y su propio espacio privado. Nopuede ver los otros chocolates que están en los otros recuadros de la caja, ni sabe qué procesos están corriendo afuera.
2. La “porción justa” (Cgroups)
Esto es lo que el chocolate puede ocupar.
Imagínate que un bombón goloso quiera crecer y ocupar la mitad de la bandeja. El sistema le dice: “Párate ahí, pana”. Le fija un límite estricto: “Tú tienes hasta aquí de memoria y hasta acá de procesador”. Si el proceso intenta pasarse de la raya y tragar más recursos de los que tiene asignados, el kernel viene sin remordimiento y le da de baja (se lo come) para proteger al resto de la caja.
Quítate el miedo de encima
La próxima vez que abras una terminal y te des vida a un contenedor, no te sientas un impostor repitiendo comandos a ciegas.
Míralo con claridad: acabas de crear un proceso normal, le pusiste un recuadro para que no mire hacia los lados, y le asignaste una cuota de recursos para que trabaje en paz.
Al final de la historia, un contenedor y un bombón relleno de lo que quieras, es la misma cosa.
Conoce tu caja, entiende tus procesos, y vamos al mambo sin miedo.
Escrito por Miguel Mateo
Software Engineer & Systems EnthusiastDesmenuzando la ingeniería de software desde los fundamentos. Aprendo en público, construyo sistemas resilientes y derribo el síndrome del impostor.