Instalación y Primeros Pasos con Docker en Windows

Hay conceptos que, una vez se ven, el cerebro hace clic y ya no vuelve atrás. La diferencia entre máquinas virtuales y contenedores es uno de esos momentos fundacionales en la vida de cualquier persona que empieza a pensar como ingeniero de sistemas.

La metáfora clásica —y sorprendentemente precisa— es esta:

👉 Las máquinas virtuales son casas completas.
👉 Los contenedores son apartamentos dentro del mismo edificio.

La diferencia que cambia la forma de diseñar sistemas

Esto es lo verdaderamente importante —y lo que merece que tus alumnos lo entiendan bien:

Con VMs piensas en:

«Voy a crear servidores.»

Con contenedores empiezas a pensar:

«Voy a desplegar servicios.»

Instalación de Docker Desktop y Portainer en Windows

En los entornos tecnológicos actuales, la virtualización ligera mediante contenedores se ha convertido en un estándar para el desarrollo, despliegue y administración de aplicaciones.

Docker es una plataforma que permite empaquetar aplicaciones junto con todas sus dependencias dentro de contenedores, garantizando que funcionen de forma idéntica en cualquier sistema.

En este tema aprenderemos a preparar un equipo Windows para trabajar con Docker Desktop y a instalar Portainer, una herramienta gráfica que facilita la gestión de contenedores.

Esta instalación será la base de todos los proyectos que realizaremos posteriormente.


1. ¿Por qué Docker necesita Linux en Windows?

Docker utiliza tecnologías propias del kernel de Linux como:

  • namespaces → aislamiento de procesos
  • cgroups → control de recursos
  • union filesystems → capas de almacenamiento

Windows no dispone de estas tecnologías de forma nativa.

La solución es WSL2.


¿Qué es WSL?

WSL (Windows Subsystem for Linux) es una característica de Windows que permite ejecutar un kernel real de Linux dentro del sistema operativo sin necesidad de usar una máquina virtual tradicional.

  • No es un emulador.
  • No es una traducción de comandos.
  • Es Linux funcionando dentro de Windows.

Ventajas de WSL2 frente a una VM clásica:

  • Arranque casi instantáneo
  • Menor consumo de memoria
  • Mejor rendimiento de disco
  • Integración directa con el sistema

Docker Desktop utiliza WSL2 como motor de virtualización.

👉 Sin WSL2, Docker simplemente no puede funcionar correctamente en Windows moderno.



3. Activar la virtualización

La virtualización debe estar habilitada en la BIOS/UEFI. Si has estado trabajando con maquinas virtuales con Virtual Box o VMWare seguro que ya lo tienes.

Cómo comprobarlo
  1. Abrir el Administrador de tareas
  2. Ir a la pestaña Rendimiento → CPU

Debe aparecer:

Virtualización: Habilitada

Si está deshabilitada:

  • Reiniciar el equipo
  • Entrar en BIOS/UEFI
  • Activar alguna de estas opciones:
Intel VT-x
Intel Virtualization Technology
AMD-V
SVM Mode

Guardar cambios y reiniciar.


4. Instalación de WSL2

Abrir PowerShell como administrador.

Ejecutar:

wsl --install

Este comando realiza automáticamente:

  • Instalación del kernel Linux
  • Activación de componentes necesarios
  • Instalación de Ubuntu
  • Configuración de WSL2 como versión por defecto

Reiniciar el equipo cuando lo solicite.


Comprobar que WSL2 está funcionando

wsl -l -v

Resultado esperado:

NAME      STATE    VERSION
Ubuntu    Running  2

Si aparece versión 1:

wsl --set-version Ubuntu 2

5. Instalación de Docker Desktop

Descargar desde la web oficial: https://www.docker.com/products/docker-desktop/

Evitar instaladores de terceros.


Instalación

Ejecutar el instalador.

Durante el proceso es MUY importante verificar que esté marcada la opción:

Use WSL 2 instead of Hyper-V

Esto permitirá que Docker funcione con el backend moderno.

Finalizar la instalación y reiniciar si es necesario.


6. Primer arranque de Docker

Abrir Docker Desktop desde el menú inicio.

El primer arranque puede tardar unos minutos.

Cuando Docker esté listo aparecerá el mensaje:

Docker is running

Verificación desde terminal

Abrir PowerShell o CMD:

docker version

Si todo está correcto, se mostrará información del cliente y del servidor Docker.

Probar el primer contenedor:

docker run hello-world

Si aparece un mensaje de bienvenida, la instalación es correcta.

Este pequeño contenedor confirma que:

  • Docker descarga imágenes
  • Puede crear contenedores
  • El motor funciona

7. Configuración recomendada de Docker Desktop

Ir a:

Settings → Resources

Asignación recomendada:

  • RAM: 4–6 GB
  • CPU: 2 o más
  • Swap: 1–2 GB

Si los equipos son potentes, aumentar estos valores mejora la experiencia.


8. ¿Qué es Portainer?

Portainer es una interfaz web que permite administrar Docker sin depender únicamente de la terminal.

Con Portainer es posible:

  • Crear contenedores
  • Gestionar imágenes
  • Administrar volúmenes
  • Supervisar recursos
  • Eliminar servicios

Es una herramienta muy utilizada en entornos profesionales y facilita enormemente el aprendizaje inicial.


9. Instalación de Portainer

Docker desktop permite instalar Portainter como un plugin mas.

Si deseas hacerlo desde terminal tambien puedes:

Crear un volumen para almacenar los datos de Portainer.

docker volume create portainer_data

Ahora ejecutamos el contenedor:

docker run -d -p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce

¿Qué estamos haciendo?

  • -d → ejecuta el contenedor en segundo plano
  • -p 9443:9443 → expone la interfaz web
  • docker.sock → permite a Portainer comunicarse con Docker
  • volumen /data → guarda la configuración

10. Primer acceso a Portainer

Abrir el navegador:

https://localhost:9443

Es normal que el navegador advierta sobre el certificado.

Continuar igualmente.




Problemas habituales

Docker no arranca

Generalmente ocurre porque:

  • WSL no está activo
  • Virtualización deshabilitada
  • Conflictos con Hyper-V

Solución típica:

wsl --update
wsl --shutdown

Reiniciar Docker.


Error de memoria

Asignar más RAM desde:

Settings → Resources

WSL extremadamente lento

Ejecutar:

wsl --shutdown

Y reiniciar Docker.


A partir de aquí comenzaremos a trabajar con:

  • imágenes
  • contenedores
  • redes
  • volúmenes
  • orquestación