Creación y Ejecución de Dockerfile para Aplicaciones

Clase 25 de 33Curso Práctico de Cloud Computing con AWS

Resumen

¿Qué es Docker y por qué es importante en el desarrollo de software?

Docker es una herramienta que ha revolucionado el mundo del desarrollo de software al facilitar la creación, despliegue y ejecución de aplicaciones en contenedores. Este enfoque permite que las aplicaciones se ejecuten de manera consistente en cualquier entorno, lo que resuelve el típico problema de “funciona en mi máquina”. Al encapsular una aplicación y todas sus dependencias en un contenedor, Docker garantiza que se pueda ejecutar sin modificaciones en cualquier máquina que tenga Docker instalado.

¿Cómo iniciar con la creación de un Dockerfile?

La creación de un Dockerfile es el primer paso para contenerizar tu aplicación. Un Dockerfile es un archivo de texto que contiene los comandos necesarios para ensamblar una imagen de Docker. Aquí te mostramos un flujo básico para comenzar:

  1. Definir la imagen base: Selecciona una imagen base que se adecue a las necesidades de tu aplicación. Por ejemplo, si estás trabajando con Node.js, podrías usar node:14 como tu imagen base.

  2. Copiar el código fuente: Incluye los archivos de tu aplicación al contenedor usando COPY o ADD.

  3. Instalar dependencias: Si tu aplicación necesita bibliotecas externas, asegúrate de instalarlas, normalmente utilizando un sistema de gestión de paquetes como npm para Node.js o pip para Python.

  4. Especificar el comando de ejecución: Define cuál será el comando que lanzará tu aplicación al ejecutarse en el contenedor. Usualmente, esto se hace con el comando CMD o ENTRYPOINT.

Aquí tienes un ejemplo básico:

# Usar la imagen base Node.js
FROM node:14

# Crear el directorio de la aplicación
WORKDIR /usr/src/app

# Copiar archivos necesarios
COPY package*.json ./

# Instalar dependencias
RUN npm install

# Copiar el código fuente
COPY . .

# Exponer el puerto en el que corre la aplicación
EXPOSE 8080

# Comando de ejecución de la aplicación
CMD ["node", "app.js"]

¿Cómo publicar y correr tu contenedor en un register?

Una vez que hayas creado tu contenedor Docker, el siguiente paso es subirlo a un registro para manejarlo fácilmente y compartirlo con otros. Los pasos son los siguientes:

  1. Crear una cuenta en un Docker Registry: Los registros más comunes son Docker Hub o un registry privado.

  2. Etiquetar tu imagen: Usa docker tag <image_name> <repository>/<image>:<tag> para etiquetar tu imagen.

  3. Iniciar sesión: Usa docker login para ingresar tus credenciales y conectarte con tu registro.

  4. Subir la imagen: Con el comando docker push <repository>/<image>:<tag> envías tu imagen al registro.

  5. Ejecutar la imagen desde el registro: En cualquier máquina con Docker, puedes tirar de la imagen usando docker pull <repository>/<image>:<tag>. Una vez descargada, la puedes correr con docker run.

¿Cuáles son los beneficios de correr aplicaciones con Docker?

Docker ofrece una serie de ventajas significativas:

  • Portabilidad mejorada: Los contenedores se pueden desplegar en cualquier máquina que tenga Docker instalado, sin importar el sistema operativo subyacente.

  • Uso eficiente de recursos: Los contenedores comparten el kernel del sistema operativo, lo que los hace muy ligeros y fáciles de manejar.

  • Fácil integración continua y despliegue (CI/CD): Docker se integra bien con las herramientas de CI/CD, lo que facilita la automatización de pruebas y despliegues.

  • Aislamiento: Garantiza que una aplicación en un contenedor no afecte a otras aplicaciones en el mismo host.

Empezar con Docker puede ser un poco desalentador al principio, pero con práctica, se convertirá en una herramienta esencial en tu kit de desarrollador. ¡No dudes en experimentar y seguir practicando!