Docker para desarrollo local

Docker para desarrollo local

¿Por qué usar Docker en desarrollo local?

Utilizar Docker en el código y desarrollo local aporta múltiples beneficios. Entre los más destacados se encuentran:

  • Consistencia en entornos: Gracias a la capacidad de Docker para crear contenedores, puedes garantizar que tu aplicación se ejecute de la misma manera en diferentes entornos.
  • Aislamiento: Los contenedores mantienen cada aplicación separada, evitando conflictos entre dependencias y versiones de software.
  • Facilidad de compartir: Comparte fácilmente tu entorno de desarrollo con otros miembros del equipo a través de imágenes de Docker y Docker Compose.

Instalación de Docker en tu máquina

Antes de empezar, asegúrate de tener Docker instalado en tu máquina. Puedes seguir las instrucciones de instalación detalladas en nuestro artículo sobre cómo instalar Docker en Linux, Windows y macOS.

Configurar un contenedor para desarrollo local

Una vez que Docker esté instalado, el siguiente paso es crear y ejecutar un contenedor que sirva como tu entorno de desarrollo. A continuación, te mostramos un ejemplo de cómo hacerlo:

Crea un archivo Dockerfile

El primer paso es crear un archivo llamado Dockerfile que definirá la imagen de tu aplicación. Este es un ejemplo de un Dockerfile básico para una aplicación web en Node.js:

FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "npm", "start" ]

En este Dockerfile, estamos haciendo lo siguiente:

  • Definir una imagen base de Node.js.
  • Establecer el directorio de trabajo.
  • Copiar los archivos de configuración y instalar las dependencias.
  • Exponer el puerto 3000 para acceder a la aplicación.
  • Especificar el comando predeterminado para iniciar la aplicación.

Construir la imagen

Una vez que hayas configurado el Dockerfile, puedes construir la imagen ejecutando el siguiente comando en la terminal desde el directorio donde se encuentra el Dockerfile:

docker build -t mi-aplicacion .

Ejecutar el contenedor

Luego, puedes ejecutar un contenedor a partir de esta imagen utilizando el siguiente comando:

docker run -p 3000:3000 -d mi-aplicacion

Este comando asocia el puerto 3000 de tu máquina local con el puerto 3000 del contenedor, asegurando que puedas acceder a tu aplicación en http://localhost:3000.

Integración con Docker Compose

Para proyectos más complejos que requieren múltiples servicios, Docker Compose se convierte en una herramienta invaluable. Permite definir y ejecutar aplicaciones en contenedores con un único archivo de configuración llamado docker-compose.yml.

Ejemplo de docker-compose.yml

Aquí tienes un ejemplo simple de un archivo docker-compose.yml que describe una aplicación web y una base de datos:

version: '3'
services:
  web:
    build: .
    ports:
      - "3000:3000"
  db:
    image: postgres
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

En este caso, estamos definiendo dos servicios: web para nuestra aplicación Node.js y db para una base de datos PostgreSQL.

Ejecutar con Docker Compose

Para iniciar todos los servicios definidos en tu archivo docker-compose.yml, simplemente ejecuta:

docker-compose up

Esto levantará tanto la aplicación web como la base de datos, facilitando la gestión de múltiples componentes de tu aplicación.

Manejo de datos y persistencia

Cuando trabajas con bases de datos o cualquier otra fuente de datos volátil, es esencial implementa persistencia en Docker. Esto se puede hacer utilizando volúmenes.

Para agregar un volumen a tu base de datos en el archivo docker-compose.yml, puedes modificaro así:

  db:
    image: postgres
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

volumes:
  db_data:

This configuration ensures that the data persists even if the container is stopped or removed.

Conclusiones

Docker se ha convertido en un estándar en el desarrollo de software, y utilizarlo para el desarrollo local puede simplificar enormemente tu flujo de trabajo. Ya sea que estés creando una simple aplicación web o un sistema complejo con múltiples servicios, Docker facilita la gestión y el despliegue de tu código. Con los ejemplos y la información proporcionada en este artículo, estás bien equipado para comenzar a explorar Docker en tus desarrollos locales.

Fuentes y lecturas recomendadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies