Docker (Contenedor) es una plataforma de código abierto que permite empaquetar una aplicación y todas sus dependencias (librerías, configuraciones, base de datos) dentro de una unidad estandarizada llamada contenedor.
Imagina que quieres enviar un mueble frágil por barco. En lugar de soltar las piezas en la bodega, las metes en un contenedor de carga estándar. No importa qué barco lo lleve ni qué puerto lo reciba: el contenido está protegido y llegará exactamente igual a su destino. Docker hace lo mismo con el software.
Conceptos clave que debes conocer:
- Imagen: Es la «receta» o plantilla de solo lectura que contiene las instrucciones para crear un contenedor (el sistema operativo, el código de Laravel, el servidor Nginx, etc.).
- Contenedor: Es la instancia viva de esa imagen. Es ligero, se inicia en segundos y está aislado del resto del sistema.
- Dockerfile: El archivo de texto simple donde el programador escribe paso a paso cómo debe construirse la imagen.
Docker vs. Máquina Virtual (VM)
Es común confundirlos, pero en la actualidad la diferencia es vital para el rendimiento de vuestros servidores:
| Característica | Máquina Virtual (VM) | Docker (Contenedor) |
| Peso | Gigabytes (incluye un SO completo). | Megabytes (comparte el núcleo del SO). |
| Velocidad | Tarda minutos en arrancar. | Arranca en milisegundos. |
| Rendimiento | Consume muchos recursos (RAM/CPU). | Ultra eficiente y ligero. |
| Aislamiento | Total (nivel hardware). | Lógico (nivel proceso). |