En esta lección dejaremos tu entorno preparado para trabajar con Docker durante el resto del curso. Veremos cómo instalarlo en los tres sistemas operativos más habituales —Windows (con Docker Desktop y WSL2), macOS y Linux—, comprobaremos que la instalación ha sido correcta ejecutando nuestros primeros comandos y, por último, repasaremos los problemas de instalación más comunes y cómo resolverlos. Una instalación bien hecha te ahorrará muchos quebraderos de cabeza más adelante, así que merece la pena dedicarle atención.
Objetivos de Aprendizaje
- Conocer las distintas formas de instalar Docker según tu sistema operativo.
- Instalar Docker Desktop en Windows aprovechando WSL2.
- Instalar Docker Desktop en macOS (Intel o Apple Silicon).
- Instalar Docker Engine en Linux.
- Verificar la instalación con
docker --versionydocker run hello-world. - Identificar y resolver los problemas de instalación más frecuentes.
¿Qué Vamos a Instalar?
Antes de empezar, conviene aclarar dos términos que verás a menudo:
- Docker Engine: el motor que realmente construye y ejecuta los contenedores. Es el núcleo de Docker.
- Docker Desktop: una aplicación de escritorio para Windows y macOS que incluye Docker Engine, una interfaz gráfica, herramientas como Docker Compose y todo lo necesario, ya integrado y configurado.
| Sistema operativo | Qué se instala normalmente | Notas |
|---|---|---|
| Windows | Docker Desktop (usa WSL2 por debajo) | Requiere virtualización activada |
| macOS | Docker Desktop | Versiones distintas para Intel y Apple Silicon |
| Linux | Docker Engine (también existe Desktop) | Se instala directamente sobre el sistema |
Instalación en Windows (Docker Desktop + WSL2)
En Windows, la forma recomendada es instalar Docker Desktop, que utiliza WSL2 (Windows Subsystem for Linux 2) para ejecutar los contenedores. WSL2 es una capa que permite ejecutar un kernel de Linux real dentro de Windows, lo que ofrece mejor rendimiento y compatibilidad.
Requisitos
- Windows 10 (64 bits) versión 21H2 o superior, o Windows 11.
- Virtualización activada en la BIOS/UEFI (suele estar activada por defecto).
- WSL2 instalado.
Paso 1: Instalar WSL2
Abre PowerShell como administrador y ejecuta:
wsl --install: instala WSL2 junto con una distribución de Linux por defecto (normalmente Ubuntu) y activa las características de Windows necesarias.- Tras ejecutarlo, reinicia el ordenador para que los cambios surtan efecto.
Puedes comprobar la versión instalada con:
Paso 2: Instalar Docker Desktop
- Descarga el instalador de Docker Desktop para Windows desde la página oficial de Docker.
- Ejecuta el instalador (
Docker Desktop Installer.exe). - Cuando te lo pregunte, asegúrate de dejar marcada la opción "Use WSL 2 instead of Hyper-V" (usar WSL2).
- Finaliza la instalación y reinicia si te lo solicita.
- Abre Docker Desktop. La primera vez tardará unos segundos en arrancar el motor; sabrás que está listo cuando el icono de la ballena en la barra de tareas deje de animarse.
Instalación en macOS
En macOS también se instala Docker Desktop. Es importante elegir la versión correcta según el procesador de tu Mac.
- Apple Silicon (chips M1, M2, M3 y posteriores): descarga la versión Apple Chip.
- Intel: descarga la versión Intel Chip.
Si no estás seguro de qué procesador tienes, ve al menú Apple → Acerca de este Mac y mira el campo del chip o procesador.
Pasos
- Descarga el archivo
Docker.dmgcorrespondiente a tu procesador. - Haz doble clic en el
.dmgy arrastra el icono de Docker a la carpeta Aplicaciones. - Abre Docker desde Aplicaciones. macOS pedirá permisos la primera vez; concédelos.
- Espera a que el icono de la ballena en la barra de menú indique que Docker está en marcha.
Instalación en Linux
En Linux lo habitual es instalar Docker Engine directamente. El procedimiento exacto varía según la distribución; a continuación mostramos el caso de Ubuntu/Debian, uno de los más comunes.
Paso 1: Actualizar el sistema e instalar dependencias
sudo: ejecuta el comando con permisos de administrador (necesario para instalar software).apt-get update: refresca la lista de paquetes disponibles.apt-get install -y ca-certificates curl: instala utilidades necesarias para descargar y verificar paquetes de forma segura. El-yresponde "sí" automáticamente a las preguntas.
Paso 2: Añadir el repositorio oficial de Docker
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc- Estas órdenes descargan la clave GPG oficial de Docker, que sirve para verificar que los paquetes son auténticos.
/etc/apt/keyrings: carpeta donde se guardan las claves de confianza.chmod a+r: da permiso de lectura a la clave para que el gestor de paquetes pueda usarla.
Paso 3: Instalar Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugindocker-ce: el motor de Docker (Community Edition).docker-ce-cli: la herramienta de línea de comandos (docker).containerd.io: el runtime que gestiona el ciclo de vida de los contenedores.docker-compose-plugin: añade el comandodocker composepara orquestar varios contenedores.
Paso 4 (recomendado): Ejecutar Docker sin sudo
Por defecto, en Linux necesitas sudo para cada comando de Docker. Para evitarlo, añade tu usuario al grupo docker:
usermod -aG docker $USER: añade (-aG) tu usuario actual ($USER) al grupodocker.- Tras ejecutarlo, cierra la sesión y vuelve a entrar (o reinicia) para que el cambio surta efecto.
Nota de seguridad: pertenecer al grupo
dockerotorga privilegios equivalentes a los de administrador del sistema. Concede esta pertenencia solo a usuarios de confianza.
Verificación de la Instalación
Independientemente del sistema operativo, los pasos para comprobar que todo funciona son los mismos.
Comprobar la versión
- Muestra la versión instalada, algo como
Docker version 27.0.3, build .... - Si ves un número de versión, significa que la herramienta de línea de comandos está correctamente instalada y accesible.
Para una información más completa (cliente y servidor) puedes usar:
- Muestra detalles del motor, número de contenedores, imágenes, configuración de almacenamiento, etc. Si este comando responde sin errores, el motor está en marcha.
Ejecutar el contenedor de prueba hello-world
docker run: descarga (si hace falta) y ejecuta una imagen.hello-world: una imagen oficial diminuta creada precisamente para verificar la instalación.
Si todo está bien, verás un mensaje que empieza por "Hello from Docker!". Ese mensaje confirma que Docker pudo:
- Contactar con el motor.
- Descargar la imagen
hello-worlddesde Docker Hub. - Crear y ejecutar un contenedor a partir de ella.
- Mostrar la salida del contenedor en tu terminal.
¡Felicidades! Si llegaste hasta aquí, tu entorno Docker funciona.
Errores Comunes y Consejos
Cannot connect to the Docker daemon: el motor no está en marcha. En Windows/macOS, abre Docker Desktop y espera a que arranque. En Linux, inícialo consudo systemctl start docker.permission denied while trying to connect to the Docker daemon socket(Linux): no has añadido tu usuario al grupodocker, o no has reiniciado la sesión después de hacerlo. Repasa el Paso 4.- Virtualización desactivada (Windows): si Docker Desktop no arranca, entra en la BIOS/UEFI y activa la virtualización (Intel VT-x o AMD-V).
- WSL2 no instalado o desactualizado (Windows): ejecuta
wsl --installowsl --updatey reinicia. - Descargar la versión equivocada en Mac: instalar la versión Intel en un Mac con Apple Silicon (o viceversa) provoca un rendimiento pésimo o fallos. Verifica tu procesador antes de descargar.
- Consejo: ejecuta siempre
docker run hello-worldjusto después de instalar. Es la forma más rápida y fiable de confirmar que todo el flujo (motor, descarga y ejecución) funciona.
Ejercicios
Ejercicio 1
Instala Docker en tu sistema operativo y demuestra que el motor está activo ejecutando un comando que muestre información del cliente y del servidor (no solo la versión).
Ejercicio 2
Ejecuta el contenedor de prueba oficial y explica brevemente qué cuatro acciones confirma su mensaje de salida.
Ejercicio 3
Estás en Linux y, al ejecutar docker ps, recibes el error permission denied ... docker daemon socket. Indica qué comando soluciona el problema y qué paso adicional es imprescindible después.
Soluciones
Solución 1
El comando docker info muestra información tanto del cliente como del servidor (motor). Si devuelve datos sin error —número de contenedores, imágenes, driver de almacenamiento, etc.— significa que el motor está activo y correctamente comunicado con la línea de comandos. Como comprobación rápida adicional, docker --version confirma que la CLI está instalada.
Solución 2
El mensaje "Hello from Docker!" confirma que Docker pudo: (1) contactar con el motor, (2) descargar la imagen hello-world desde Docker Hub, (3) crear y ejecutar un contenedor a partir de esa imagen, y (4) mostrar la salida del contenedor en tu terminal.
Solución 3
Este comando añade tu usuario al grupo docker. El paso adicional imprescindible es cerrar la sesión y volver a iniciarla (o reiniciar el equipo) para que la pertenencia al nuevo grupo se aplique. Sin ese reinicio de sesión, el error persistirá.
Conclusión
En esta lección hemos instalado Docker en Windows (con Docker Desktop y WSL2), macOS (eligiendo la versión correcta según el procesador) y Linux (Docker Engine desde el repositorio oficial). Además, hemos verificado la instalación con docker --version, docker info y docker run hello-world, y hemos repasado los problemas más habituales y sus soluciones. Tu entorno ya está listo para trabajar.
En la siguiente lección, Arquitectura de Docker, abriremos el capó para entender cómo funciona Docker por dentro: la arquitectura cliente-servidor, el papel del daemon, la CLI y la API REST, y componentes como containerd y runc. Comprender esta arquitectura te ayudará a razonar sobre lo que ocurre cada vez que ejecutas un comando.
Docker: De Principiante a Avanzado
Módulo 1: Introducción a Docker
- ¿Qué es Docker?
- Instalando Docker
- Arquitectura de Docker
- Comandos Básicos de Docker
- Entendiendo las Imágenes de Docker
- Creando tu Primer Contenedor Docker
Módulo 2: Trabajando con Imágenes Docker
- Docker Hub y Repositorios
- Construyendo Imágenes Docker
- Conceptos Básicos de Dockerfile
- Gestionando Imágenes Docker
- Etiquetado y Publicación de Imágenes
Módulo 3: Contenedores Docker
- Ejecutando Contenedores
- Ciclo de Vida del Contenedor
- Gestionando Contenedores
- Redes en Docker
- Persistencia de Datos con Volúmenes
Módulo 4: Docker Compose
- Introducción a Docker Compose
- Definiendo Servicios en Docker Compose
- Comandos de Docker Compose
- Aplicaciones Multi-Contenedor
- Variables de Entorno en Docker Compose
Módulo 5: Conceptos Avanzados de Docker
- Profundización en Redes Docker
- Opciones de Almacenamiento Docker
- Mejores Prácticas de Seguridad en Docker
- Optimizando Imágenes Docker
- Registro y Monitoreo en Docker
Módulo 6: Docker en Producción
- CI/CD con Docker
- Orquestando Contenedores con Docker Swarm
- Introducción a Kubernetes
- Desplegando Contenedores Docker en Kubernetes
- Escalado y Balanceo de Carga
