Docker y los contenedores, explicados para empezar
Qué son los contenedores, para qué sirven y cómo dar tus primeros pasos con Docker en Windows.
«En mi ordenador funciona» es una de las frases más repetidas en programación. Un programa depende de la versión del lenguaje, de las bibliotecas, de la base de datos y hasta del sistema operativo. Un contenedor empaqueta la aplicación con todo lo que necesita para que se ejecute igual en tu portátil, en el de un compañero o en un servidor. Docker es la herramienta más conocida para crearlos y ejecutarlos.
Contenedor frente a máquina virtual
Una máquina virtual simula un ordenador completo con su propio sistema operativo: es muy aislada, pero pesa gigas y tarda en arrancar. Un contenedor comparte el núcleo del sistema operativo anfitrión y solo incluye la aplicación y sus dependencias, así que ocupa menos y arranca en segundos. A cambio, el aislamiento es menor que el de una máquina virtual.
| Máquina virtual | Contenedor | |
|---|---|---|
| Incluye | Sistema operativo completo | Aplicación y dependencias |
| Arranque | Minutos | Segundos |
| Tamaño típico | Gigabytes | Megabytes a algunos gigas |
| Uso típico | Probar otro sistema operativo | Ejecutar y desplegar aplicaciones |
Imágenes, contenedores y registros
La documentación de Docker define tres conceptos clave:
- Imagen: una plantilla de solo lectura con las instrucciones para crear un contenedor. Suele basarse en otra imagen (por ejemplo, una con Python ya instalado) más tus cambios.
- Contenedor: una instancia en ejecución de una imagen. Puedes crear, arrancar, parar y borrar todos los que quieras a partir de la misma imagen.
- Registro: un almacén de imágenes. Docker Hub es el registro público que Docker usa por defecto.
Las imágenes se describen en un archivo de texto llamado Dockerfile. Para una pequeña aplicación de Python sería algo así:
FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
Cada línea es un paso: partir de una imagen oficial de Python, copiar las dependencias e instalarlas, copiar el código y decir qué se ejecuta al arrancar.
Instalar Docker Desktop en Windows
Docker Desktop instala todo lo necesario en Windows 10 y 11. Lo que hay que saber antes, según su documentación:
- Usa WSL 2 para ejecutar los contenedores de Linux. Hace falta un procesador de 64 bits con SLAT, 8 GB de RAM y la virtualización activada en la BIOS/UEFI (si no lo está, lo verás en la guía de cómo entrar en la BIOS).
- La instalación por usuario, recomendada para la mayoría, no necesita permisos de administrador.
- Es gratuito para uso personal, educación, proyectos de código abierto no comerciales y pequeñas empresas (menos de 250 empleados y menos de 10 millones de dólares de facturación anual). Las empresas más grandes necesitan una suscripción de pago.
Si ya usas WSL, Docker Desktop se integra con él.
Tus primeros comandos
docker run hello-world # prueba que todo funciona
docker run -d -p 8080:80 --name web nginx # un servidor web en http://localhost:8080
docker ps # contenedores en marcha
docker stop web # pararlo
docker rm web # borrarlo
docker build -t mi-app . # crear una imagen con tu Dockerfile
docker images # imágenes descargadas
-p 8080:80 conecta el puerto 8080 de tu equipo con el 80 del contenedor. Cuando lo pares y lo borres, el contenedor desaparece con todo lo que había dentro: los datos que deban conservarse se guardan en volúmenes, que Docker mantiene aparte.
Buenas prácticas desde el principio
- Usa imágenes oficiales o de editores verificados en Docker Hub; una imagen cualquiera puede contener software malicioso.
- Indica versiones concretas (
python:3.13-slim, no solopython) para que el resultado no cambie sin avisar. - No metas contraseñas ni claves en el Dockerfile ni en la imagen: quien tenga la imagen podrá leerlas.
- Docker Desktop reserva memoria y disco; ciérralo cuando no lo uses si tu equipo va justo.
Los contenedores son la base de cómo se publican hoy muchas aplicaciones web y de los entornos de desarrollo reproducibles. Si estás empezando, no te hacen falta todavía: vuelve a ellos cuando tu proyecto tenga base de datos o lo vaya a usar más gente.
Fuentes consultadas
- What is Docker? (Docker Docs)
- Install Docker Desktop on Windows (Docker Docs)
