Docker es una de las tecnologías más populares para desplegar aplicaciones de manera rápida, escalable y eficiente. Con esta guía, aprenderás cómo crear tus primeros contenedores desde cero y gestionarlos como un pro.
📌 ¿Por qué usar Docker?
🟢 Aísla aplicaciones y sus dependencias, evitando conflictos.
⚡ Facilita la portabilidad entre entornos (dev, test, prod).
📦 Simplifica la gestión de versiones y despliegues.
🔧 Instalación de Docker
💡 En sistemas basados en Debian/Ubuntu:
sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker
💡 Verifica la instalación:
docker --version
🚀 Tu primer contenedor
✅ Ejecuta el clásico Hello World:
docker run hello-world
🔍 Esto descargará la imagen y la ejecutará, mostrando un mensaje de éxito.
🛠️ Crear un contenedor de Nginx
✅ Descarga la imagen oficial de Nginx:
docker pull nginx
✅ Ejecuta el contenedor:
docker run -d -p 8080:80 --name mi-nginx nginx
🔎 Accede a tu navegador:
http://localhost:8080
📦 Crea tu propia imagen con un Dockerfile
💡 Ejemplo de Dockerfile para una aplicación web simple:
# Usa una imagen base
FROM nginx:alpine
# Copia archivos estáticos
COPY ./mi-sitio-web /usr/share/nginx/html
# Expone el puerto
EXPOSE 80
✅ Construye la imagen:
docker build -t mi-sitio:1.0 .
✅ Ejecuta el contenedor:
docker run -d -p 8080:80 --name mi-sitio mi-sitio:1.0
🔄 Comandos básicos para gestión de contenedores
- Ver contenedores en ejecución:
docker ps
Ver todos los contenedores:
docker ps -a
Detener un contenedor:
docker stop mi-nginx
Eliminar un contenedor:
docker rm mi-nginx
Ver imágenes descargadas:
docker images
Eliminar una imagen:
docker rmi mi-sitio:1.0
🔄 Consejos para optimizar tus contenedores
✅ Usa imágenes ligeras (por ejemplo, Alpine).
✅ Mantén tu Dockerfile ordenado y optimizado.
✅ Usa herramientas como docker-compose para gestionar múltiples contenedores fácilmente.
💡 Conclusión
Ahora ya tienes una base sólida para trabajar con Docker: desde su instalación hasta el despliegue y la gestión de tus contenedores. 🚀
¡Aprovecha esta poderosa herramienta para mejorar tus flujos de trabajo y hacer tus proyectos más escalables y eficientes!