Cómo funciona Docker: estructura y funcionamiento

Docker se ha ganado un lugar importante en la actividad diaria de los desarrolladores a lo largo de los últimos años. Vamos a hacer un resumen de esta herramienta para comprender cómo funciona Docker entre bastidores.

Caracterà­sticas de Docker

Una de las funciones más importantes que ofrece Docker es el tiempo de inicio instantáneo. Un contenedor Docker puede iniciarse en una fracción mà­nima de tiempo. Una operación muy rápida que nada tiene que ver con los minutos necesarios para iniciar una máquina virtual.

Docker utiliza las funciones del kernel de Linux para arrancar e interactuar con los contenedores. Debido a esta dependencia del kernel de Linux, cuando Docker se ejecuta en otros sistemas como MacOs, se inicia un nivel adicional de virtualización que normalmente está «enmascarado» por Docker para Mac (como usuario no notarás ninguna diferencia, salvo en términos de velocidad).

¿Qué es la virtualización?

Docker es una herramienta que se utiliza para ejecutar contenedores: los contenedores son similares a las máquinas virtuales, por lo tanto simulan una máquina que se ejecuta dentro de tu computador real. Si nunca has utilizado VirtualBox o VMware, por ejemplo, es posible que estés familiarizado con las máquinas virtuales que se utilizan para ejecutar Windows dentro de un Mac.

Una máquina virtual simula todas las partes de un computador real, incluidos la pantalla y el disco duro, que en el computador real (a menudo denominado host) son solo un gran y único archivo (llamado disco duro virtual). En una máquina virtual (o VM) que ejecuta Windows, el disco duro virtual contiene todo el código del sistema operativo Windows que puede tener un tamaño de varios gigabytes.

Windows en la VM no sabe que se está ejecutando dentro de una simulación ni básicamente dentro de un computador real, simplemente «cree» que él mismo es el sistema operativo principal. Para entendernos, Docker, al igual que VirtualBox, «virtualiza» un sistema operativo dentro de un sistema operativo host.

¿Cuál es la diferencia entre una VM y un contenedor?

Utilizar una máquina virtual puede resultar desafiante para un procesador. En el ejemplo anterior, el host de Mac no solo realiza todas las tareas en segundo plano de Mac OS, sino que también realiza todas las tareas en segundo plano de Windows, las cuales constituyen un programa pesado para el host.

El sistema operativo host tiene control sobre la potencia de procesamiento que puede entregar a un programa, y es precisamente por esta razón que las máquinas virtuales suelen funcionar con mucha lentitud.
Por este motivo, puede resultar especialmente agotador ejecutar múltiples VM de forma simultánea, ya que esto significarà­a pedirle a un computador que ejecute varios sistemas operativos al mismo tiempo mientras se mantienen gigantescos discos duros virtuales que contienen diferentes sistemas operativos.

La ejecución de varias instancias del mismo sistema operativo suele ser redundante e innecesaria, además de poner en riesgo la ejecución de un sistema operativo virtualizado.

Por otro lado, los contenedores comparten recursos redundantes, como algunos archivos del sistema operativo de grandes dimensiones, y los recursos de hardware se asignan dinámicamente en función de las necesidades de cada contenedor en ese momento.

cómo funciona Docker

Conclusión

Los contenedores Docker resultan muy útiles para crear entornos aislados en los que ejecutar programas separados sin que interfieran entre sà­, de hecho, facilitan la actividad del desarrollador que trabajará en un entorno aislado sin interferir con la configuración del host.

Si deseas obtener más información sobre Docker, puedes leer «How to get started with Docker» para descubrir cómo escribir un archivo Docker, crear imágenes personalizadas y comprender cómo utilizar Docker Compose para organizar diferentes contenedores Docker.

Read related articles