Aprende Docker desde cero
Docker desde cero creando tu primer contenedor
Empezar con Docker desde cero puede parecer intimidante al inicio, pero en la práctica, crear tu primer contenedor es mucho más simple de lo que muchos imaginan. De hecho, la mejor forma de aprender Docker no es leyendo conceptos abstractos, sino ejecutando contenedores reales desde el primer momento.
En este artículo veremos Docker desde cero paso a paso, enfocándonos en la creación y ejecución de tu primer contenedor. El objetivo no es memorizar definiciones, sino entender qué ocurre realmente cuando ejecutas Docker y cómo empezar a usarlo de forma práctica en tu día a día como DevOps, desarrollador o ingeniero de sistemas.
Qué problema resuelve Docker en la práctica
Antes de crear tu primer contenedor, conviene entender el problema real que Docker resuelve, sin entrar en teoría pesada.
En entornos tradicionales:
- Las aplicaciones dependen del sistema operativo
- Existen conflictos de versiones
- Replicar un entorno es costoso
- “En mi máquina funciona” es una frase común
Con Docker desde cero, el enfoque cambia:
- La aplicación viaja con sus dependencias
- El entorno es reproducible
- La ejecución es consistente
- El despliegue es más simple
Esto es lo que hace que Docker sea tan atractivo en proyectos modernos.
Verificando que Docker esté instalado
El primer paso en Docker desde cero es verificar que Docker esté disponible en tu sistema.
Ejecuta:
docker version
Si Docker está correctamente instalado, verás información del cliente y del servidor. Esto confirma que:
- El cliente Docker funciona
- El daemon Docker está corriendo
Este punto es importante, ya que sin el daemon no podrás ejecutar contenedores.
Ejecutando tu primer contenedor con Docker
Aquí es donde realmente empieza Docker desde cero.
Ejecuta el siguiente comando:
docker run hello-world
Este comando hace varias cosas automáticamente:
- Busca la imagen
hello-worldlocalmente - Si no existe, la descarga desde Docker Hub
- Crea un contenedor
- Ejecuta el contenedor
- Muestra la salida
Este primer contenedor confirma que Docker funciona correctamente.
Entendiendo qué es una imagen y un contenedor
En Docker desde cero es fundamental diferenciar estos dos conceptos, pero de forma práctica.
- Imagen: plantilla inmutable
- Contenedor: instancia en ejecución de una imagen
Cuando ejecutas:
docker run hello-world
Docker crea un contenedor a partir de la imagen. El contenedor se ejecuta y luego termina.
Puedes listar los contenedores ejecutados con:
docker ps -a
Ejecutando un contenedor interactivo
Un siguiente paso práctico en Docker desde cero es ejecutar un contenedor interactivo.
Ejemplo con Ubuntu:
docker run -it ubuntu:latest /bin/bash
Aquí ocurre lo siguiente:
- Docker descarga la imagen
ubuntusi no existe - Crea un contenedor
- Abre una sesión interactiva de Bash
Ahora estás dentro de un contenedor Linux aislado del host.
Ejecutando comandos dentro del contenedor
Una vez dentro del contenedor, puedes ejecutar comandos como si fuera un sistema Linux normal:
apt update apt install -y curl curl https://example.com
Este enfoque demuestra uno de los grandes beneficios de Docker desde cero: entornos efímeros y reproducibles.
Cuando sales del contenedor con exit, el contenedor se detiene.
Ejecutando contenedores en segundo plano
No todos los contenedores se ejecutan de forma interactiva. Muchos servicios se ejecutan en segundo plano.
Ejemplo práctico:
docker run -d nginx
Aquí:
-dejecuta el contenedor en background- Docker descarga la imagen de Nginx
- El contenedor queda corriendo
Puedes verificarlo con:
docker ps
Exponiendo puertos de un contenedor
Uno de los pasos más importantes en Docker desde cero es exponer servicios.
Ejemplo:
docker run -d -p 8080:80 nginx
Esto mapea:
- Puerto 8080 del host
- Puerto 80 del contenedor
Ahora puedes acceder desde tu navegador a:
http://localhost:8080
Este patrón es fundamental en cualquier uso real de Docker.
Nombrando contenedores para facilitar la gestión
Por defecto, Docker asigna nombres aleatorios a los contenedores. Sin embargo, en Docker desde cero es buena práctica asignar nombres explícitos.
Ejemplo:
docker run -d --name web-nginx -p 8080:80 nginx
Esto facilita:
- Debugging
- Automatización
- Uso de scripts
Inspeccionando contenedores
Docker proporciona comandos muy útiles para entender qué está pasando internamente.
Ejemplo:
docker inspect web-nginx
Esto devuelve información detallada sobre:
- Configuración
- Redes
- Volúmenes
- Estado del contenedor
Es una herramienta clave cuando algo no funciona como esperas.
Deteniendo y eliminando contenedores
Parte del aprendizaje de Docker desde cero es saber limpiar recursos.
Para detener un contenedor:
docker stop web-nginx
Para eliminarlo:
docker rm web-nginx
Esto es especialmente importante cuando trabajas con muchos contenedores de prueba.
Creando tu primer Dockerfile
Hasta ahora hemos usado imágenes existentes. El siguiente paso natural en Docker desde cero es crear tu propia imagen.
Crea un archivo llamado Dockerfile:
FROM nginx:alpine COPY index.html /usr/share/nginx/html/index.html
Y un archivo index.html simple.
Luego ejecuta:
docker build -t mi-primer-contenedor .
Esto crea una imagen personalizada.
Ejecutando tu imagen personalizada
Una vez creada la imagen, ejecútala:
docker run -d -p 8080:80 mi-primer-contenedor
Ahora estás ejecutando tu propio contenedor, creado desde cero.
Este es un hito importante en el aprendizaje de Docker.
Tips prácticos de DevOps al empezar con Docker
Algunos consejos reales al trabajar con Docker desde cero:
- Usa imágenes pequeñas cuando sea posible
- Nombra contenedores e imágenes
- Elimina recursos que no uses
- Versiona tus Dockerfiles
- No metas secretos dentro de las imágenes
Estas prácticas te ahorrarán problemas más adelante.
Cuándo pasar al siguiente nivel
Una vez que dominas Docker desde cero y la creación de tu primer contenedor, el siguiente paso suele ser:
- Docker Compose
- Automatización con scripts
- CI/CD
- Kubernetes
Pero todo parte de entender bien estos fundamentos.
Ahora que ya conoces lo básico de Docker, te podría interesar Probar Vault en Docker.
¿Ya creaste tu primer contenedor con Docker o todavía estás dando los primeros pasos?
Cuéntame en los comentarios o comparte este artículo con alguien que esté empezando en Docker.


Deja un comentario