Curso Docker #1: Que es Docker? Instalacion y Tu Primer Contenedor
Bienvenido al Curso de Docker - Parte 1 de 10

Fuente: Wikimedia Commons
¡Bienvenido al Curso de Docker desde Cero! Este es el articulo 1 de 10 de una serie disenada para que domines Docker, la herramienta de contenedores mas utilizada en la industria del software. No importa si nunca has usado Docker — esta guia esta pensada para principiantes.
En este primer articulo vas a entender que es Docker, por que revoluciono el desarrollo de software, como instalarlo en tu sistema operativo y como ejecutar tu primer contenedor. Al terminar, tendras Docker funcionando y habras ejecutado tus primeros comandos.
Que es Docker
Docker es una plataforma de contenedores que permite empaquetar una aplicacion junto con todas sus dependencias (librerias, archivos de configuracion, runtime) en una unidad estandar llamada contenedor. Un contenedor se ejecuta de forma aislada y consistente en cualquier maquina que tenga Docker instalado.
Imagina que quieres compartir tu aplicacion con un companero. Sin Docker, tendria que instalar la misma version de Node.js, Python, las mismas librerias, configurar variables de entorno, etc. Con Docker, simplemente le envias el contenedor y funciona exactamente igual que en tu maquina.
Docker fue lanzado en 2013 por Solomon Hykes y desde entonces se convirtio en el estandar de la industria para empaquetar y distribuir software. Empresas como Google, Netflix, Spotify y miles mas lo usan diariamente.
Por que usar Docker
Estas son las principales razones por las que Docker se ha vuelto indispensable:
- Consistencia: "En mi maquina funciona" deja de ser un problema. El contenedor se comporta igual en desarrollo, pruebas y produccion
- Aislamiento: Cada contenedor tiene su propio sistema de archivos, red y procesos. No hay conflictos entre aplicaciones
- Portabilidad: Un contenedor funciona en Linux, Windows, macOS y en cualquier nube (AWS, Azure, GCP)
- Velocidad: Los contenedores arrancan en segundos, no en minutos como las maquinas virtuales
- Eficiencia: Los contenedores comparten el kernel del sistema operativo, usando muchos menos recursos que una VM
- Escalabilidad: Puedes levantar decenas de contenedores identicos para manejar mas trafico
- Ecosistema: Docker Hub tiene miles de imagenes listas para usar: bases de datos, servidores web, lenguajes de programacion
Contenedores vs Maquinas Virtuales
Es comun confundir contenedores con maquinas virtuales (VMs). Aunque ambos proporcionan aislamiento, funcionan de forma muy diferente:

| Caracteristica | Contenedor | Maquina Virtual |
|---|---|---|
| Arranca en | Segundos | Minutos |
| Tamano | MB | GB |
| Sistema operativo | Comparte el kernel del host | Tiene su propio SO completo |
| Rendimiento | Cercano al nativo | Overhead por la virtualizacion |
| Aislamiento | A nivel de proceso | A nivel de hardware |
| Densidad | Puedes ejecutar cientos | Limitas a decenas |
En resumen: una VM virtualiza el hardware y ejecuta un sistema operativo completo encima. Un contenedor virtualiza el sistema operativo y comparte el kernel del host, lo que lo hace mucho mas ligero y rapido.
Instalar Docker en Windows
En Windows, la forma recomendada es instalar Docker Desktop:
Requisitos previos
- Windows 10 (64-bit) version 2004 o superior, o Windows 11
- WSL 2 habilitado (Docker Desktop lo configura automaticamente)
- Virtualizacion habilitada en la BIOS
Pasos de instalacion
- Ve a docs.docker.com/desktop/setup/install/windows-install
- Descarga Docker Desktop for Windows
- Ejecuta el instalador
Docker Desktop Installer.exe - Asegurate de marcar "Use WSL 2 instead of Hyper-V"
- Haz clic en OK y espera a que termine la instalacion
- Reinicia tu computadora cuando se te pida
- Abre Docker Desktop desde el menu de inicio
Para verificar que Docker se instalo correctamente, abre una terminal (PowerShell o CMD) y ejecuta:
1# Verificar la version de Docker
2docker --version
3
4# Debe mostrar algo como:
5# Docker version 27.x.x, build xxxxxxx
6
7# Verificar que el motor esta funcionando
8docker info
Instalar Docker en macOS
En macOS tambien se usa Docker Desktop:
- Ve a docs.docker.com/desktop/setup/install/mac-install
- Descarga la version correspondiente: Apple Silicon (M1/M2/M3) o Intel
- Abre el archivo
.dmgdescargado - Arrastra el icono de Docker a la carpeta Applications
- Abre Docker Desktop desde Launchpad o Spotlight
- Acepta los terminos de servicio y espera a que se inicie
Verifica la instalacion en la terminal:
1docker --version
2docker compose version
Instalar Docker en Linux (Ubuntu/Debian)
En Linux, Docker se instala directamente como motor (Docker Engine), sin necesidad de Docker Desktop:
1# Actualizar paquetes
2sudo apt-get update
3
4# Instalar dependencias necesarias
5sudo apt-get install -y \
6 ca-certificates \
7 curl \
8 gnupg \
9 lsb-release
10
11# Agregar la clave GPG oficial de Docker
12sudo mkdir -p /etc/apt/keyrings
13curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
14 sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
15
16# Agregar el repositorio de Docker
17echo \
18 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
19 https://download.docker.com/linux/ubuntu \
20 $(lsb_release -cs) stable" | \
21 sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
22
23# Instalar Docker Engine
24sudo apt-get update
25sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
26
27# Agregar tu usuario al grupo docker (para no usar sudo)
28sudo usermod -aG docker $USER
29
30# Aplicar el cambio de grupo (necesitas cerrar sesion y volver a entrar)
31newgrp docker
docker, debes cerrar sesion y volver a iniciarla para que el cambio tome efecto. De lo contrario, necesitaras usar sudo antes de cada comando de Docker.
Verifica la instalacion:
1# Verificar version
2docker --version
3
4# Verificar que el servicio esta activo
5sudo systemctl status docker
6
7# Probar Docker sin sudo
8docker run hello-world
Tu primer contenedor: hello-world
Ahora que Docker esta instalado, vamos a ejecutar tu primer contenedor. El contenedor hello-world es una imagen oficial de Docker disenada especificamente para verificar que la instalacion funciona correctamente.
1# Ejecutar el contenedor hello-world
2docker run hello-world
Cuando ejecutas este comando, Docker realiza los siguientes pasos:
- Busca la imagen localmente: Docker revisa si ya tienes la imagen
hello-worlden tu maquina - Descarga la imagen: Si no la encuentra, la descarga automaticamente de Docker Hub
- Crea un contenedor: Docker crea un nuevo contenedor a partir de la imagen
- Ejecuta el contenedor: El contenedor imprime un mensaje de bienvenida y se detiene
Si ves el mensaje "Hello from Docker!", felicidades — Docker esta funcionando correctamente.
hello-world es efimero: se ejecuta, imprime el mensaje y se detiene. No queda corriendo en segundo plano. Mas adelante veremos contenedores que se mantienen activos.
Ejecutar un servidor web con Nginx
Ahora vamos a hacer algo mas interesante: levantar un servidor web real con Nginx en un contenedor. Esto demuestra el poder de Docker — en un solo comando tendras un servidor web funcionando sin instalar nada.
1# Ejecutar Nginx en un contenedor
2docker run -d -p 8080:80 --name mi-nginx nginx
3
4# Explicacion de las banderas:
5# -d = modo "detached" (se ejecuta en segundo plano)
6# -p 8080:80 = mapea el puerto 8080 de tu maquina al puerto 80 del contenedor
7# --name = le asigna un nombre al contenedor (en vez de uno aleatorio)
8# nginx = nombre de la imagen a usar
Ahora abre tu navegador y ve a http://localhost:8080. Deberas ver la pagina de bienvenida de Nginx. ¡Acabas de levantar un servidor web en segundos!
Comandos basicos de Docker
Estos son los comandos fundamentales que usaras constantemente. Familiarizate con ellos:
Ver contenedores en ejecucion
1# Listar contenedores activos
2docker ps
3
4# Listar todos los contenedores (incluyendo los detenidos)
5docker ps -a
Detener y eliminar contenedores
1# Detener un contenedor
2docker stop mi-nginx
3
4# Iniciar un contenedor detenido
5docker start mi-nginx
6
7# Eliminar un contenedor (debe estar detenido primero)
8docker rm mi-nginx
9
10# Detener y eliminar en un solo paso (forzar)
11docker rm -f mi-nginx
Ver logs de un contenedor
1# Ver los logs
2docker logs mi-nginx
3
4# Ver logs en tiempo real
5docker logs -f mi-nginx
Ejecutar comandos dentro de un contenedor
1# Abrir una terminal interactiva dentro del contenedor
2docker exec -it mi-nginx bash
3
4# Ejecutar un comando especifico
5docker exec mi-nginx cat /etc/nginx/nginx.conf
-it combina dos opciones: -i (interactivo, mantiene la entrada estandar abierta) y -t (asigna una pseudo-terminal). Juntos te permiten interactuar con el contenedor como si estuvieras dentro de el.
Ver imagenes descargadas
1# Listar imagenes locales
2docker images
3
4# Eliminar una imagen
5docker rmi nginx
Practica guiada: ejecuta multiples contenedores
Para consolidar lo aprendido, vamos a ejecutar tres contenedores diferentes al mismo tiempo:
1# Contenedor 1: Nginx en el puerto 8080
2docker run -d -p 8080:80 --name web-nginx nginx
3
4# Contenedor 2: Apache (httpd) en el puerto 8081
5docker run -d -p 8081:80 --name web-apache httpd
6
7# Contenedor 3: Un contenedor de Alpine Linux interactivo
8docker run -it --name mi-alpine alpine sh
Dentro de Alpine, puedes ejecutar comandos de Linux:
1# Dentro del contenedor Alpine
2whoami
3cat /etc/os-release
4ls /
5exit
Ahora revisa todos tus contenedores:
1# Ver todos los contenedores
2docker ps -a
3
4# Limpiar: detener y eliminar todos
5docker stop web-nginx web-apache
6docker rm web-nginx web-apache mi-alpine
docker rm -f elimina un contenedor a la fuerza incluso si esta corriendo. Usalo con precaucion en ambientes de produccion, ya que no le da tiempo al proceso de terminar limpiamente.
Referencia rapida de comandos
Aqui tienes una tabla de referencia con los comandos que aprendimos:
| Comando | Descripcion |
|---|---|
docker run <imagen> | Crear y ejecutar un contenedor |
docker ps | Listar contenedores activos |
docker ps -a | Listar todos los contenedores |
docker stop <nombre> | Detener un contenedor |
docker start <nombre> | Iniciar un contenedor detenido |
docker rm <nombre> | Eliminar un contenedor |
docker logs <nombre> | Ver logs del contenedor |
docker exec -it <nombre> bash | Entrar al contenedor |
docker images | Listar imagenes locales |
docker rmi <imagen> | Eliminar una imagen |
Para la referencia completa de comandos, consulta la documentacion oficial de Docker.
Resumen y proximo articulo
En este primer articulo del curso hemos logrado:
- Entender que es Docker y por que es esencial en el desarrollo moderno
- Conocer la diferencia entre contenedores y maquinas virtuales
- Instalar Docker en Windows, macOS y Linux
- Ejecutar nuestro primer contenedor con hello-world
- Levantar un servidor web Nginx en un contenedor
- Aprender los comandos basicos: run, ps, stop, rm, logs, exec
En el proximo articulo (Parte 2 de 10) exploraremos las imagenes Docker en profundidad: como funcionan las capas, como usar Docker Hub para encontrar imagenes, y como gestionar imagenes en tu maquina.
¡Nos vemos en el siguiente articulo!
Comments
Sign in to leave a comment
No comments yet. Be the first!