Guía Rápida de Docker: Comandos y Conceptos Claves

👉 Para Quién Va Dirigido

Esta guía está diseñada para desarrolladores y administradores de sistemas que ya conocen Docker y necesitan una referencia rápida sobre los comandos esenciales. Es una ayuda de memoria para agilizar el trabajo diario con contenedores.

🌊 Introducción a Docker

Docker es una plataforma de contenedores que permite ejecutar aplicaciones de forma aislada y portátil. Con Docker, los desarrolladores pueden empaquetar software con todas sus dependencias en imágenes ligeras y eficientes, asegurando que se ejecuten de manera uniforme en cualquier entorno.

🔢 Componentes Clave de Docker

1. Imágenes (Images)

Las imágenes de Docker son plantillas de solo lectura que contienen el sistema operativo, bibliotecas y el código necesario para ejecutar una aplicación.

2. Contenedores (Containers)

Los contenedores son instancias en ejecución de una imagen de Docker. Son efímeros, lo que significa que cualquier cambio realizado dentro del contenedor se pierde al detenerlo, a menos que se use persistencia de datos.

3. Registros (Registries)

Los registros almacenan imágenes de Docker y permiten compartirlas con otros usuarios. Docker Hub es el registro público más utilizado.

4. Volúmenes (Volumes)

Los volúmenes permiten la persistencia de datos en Docker, separando los archivos de los contenedores para evitar la pérdida de información.

5. Redes (Networks)

Las redes en Docker facilitan la comunicación entre contenedores dentro de un mismo entorno de trabajo.

🔍 Diferencias Claves en Docker

Dockerfile vs. Docker Compose

  • Dockerfile: Define la configuración y entorno de un contenedor individual.
  • Docker Compose: Permite orquestar múltiples contenedores definidos en un solo archivo YAML.

COPY vs. ADD en Dockerfile

  • COPY: Copia archivos desde el sistema anfitrión al contenedor.
  • ADD: Hace lo mismo que COPY, pero también permite descargar archivos desde URLs y descomprimir archivos comprimidos.

Ejemplo de uso en Dockerfile:

🌐 Puertos en Docker

Docker permite mapear puertos de contenedores a puertos del sistema anfitrión. Ejemplos:

Los puertos comunes en Docker incluyen:

  • 80, 443: Para servidores web como Nginx o Apache.
  • 3306: Para bases de datos MySQL.
  • 5432: Para PostgreSQL.
  • 6379: Para Redis.

🌐 Comandos Básicos en Docker

1. Ejecutar y gestionar contenedores

2. Construir y gestionar imágenes

3. Administrar contenedores

4. Volúmenes para persistencia de datos

5. Redes en Docker

🚀 Docker Compose

Docker Compose permite definir y ejecutar aplicaciones Docker con múltiples contenedores mediante un archivo docker-compose.yml.

Ejemplo de docker-compose.yml para una aplicación con Nginx y PostgreSQL:

Para ejecutar:

📌 Plantilla Base para un Proyecto Docker

Ejemplo de un Dockerfile básico para iniciar un entorno con Node.js:

🌟 Buenas Prácticas en Docker

  • Evitar usar FROM node:latest, ya que podría causar inconsistencias con nuevas versiones.
  • No copiar archivos directamente desde repositorios desactualizados.
  • Versionar las imágenes utilizando etiquetas (tags) para evitar problemas de compatibilidad.
  • En docker-compose.yml, ya no es necesario especificar la versión, ya que Docker Compose detecta automáticamente la configuración adecuada.
  • Usar múltiples FROM en Dockerfile si se requieren diferentes entornos de compilación y ejecución (multistage builds).
  • No ejecutar procesos como root dentro del contenedor, es mejor crear un usuario específico.
  • Minimizar el tamaño de las imágenes utilizando imágenes base más ligeras como alpine.
  • Eliminar contenedores, volúmenes y redes innecesarias con docker system prune para liberar espacio.

🏆 Conclusión

Docker es una herramienta fundamental para el desarrollo moderno, permitiendo crear entornos consistentes y replicables. Dominar sus comandos y buenas prácticas garantiza una mejor gestión de aplicaciones en contenedores.

Karla Cabañas

March 14, 2025