¿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.

Deja una respuesta