Docker para principiantes: crear un entorno de desarrollo reproducible
Docker permite empaquetar una aplicación y sus dependencias en contenedores aislados. No es una máquina virtual completa, pero ayuda a que el entorno de desarrollo sea más parecido entre equipos. En esta guía aprenderás los conceptos básicos y crearás un ejemplo sencillo con Node.js.
Qué problema resuelve Docker
Un proyecto puede funcionar en un ordenador y fallar en otro por diferencias de versión, paquetes del sistema o configuración. Un contenedor declara parte de ese entorno y reduce esas diferencias. Aun así, Docker no sustituye las pruebas ni elimina todas las particularidades del sistema operativo.
Crear un Dockerfile
En la raíz del proyecto crea un archivo llamado Dockerfile:
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Copiar primero los archivos de dependencias permite aprovechar la caché cuando solo cambia el código. Usa una imagen oficial y fija una versión adecuada para evitar cambios inesperados.
Construir y ejecutar la imagen
docker build -t mi-app .
docker run --rm -p 3000:3000 mi-app
La opción --rm elimina el contenedor al detenerlo. El parámetro -p conecta el puerto del equipo con el puerto del contenedor.
Usar Docker Compose
Cuando necesitas varios servicios, Compose permite declararlos en un archivo:
services:
app:
build: .
ports:
- "3000:3000"
environment:
NODE_ENV: development
Inicia el entorno con docker compose up --build y detenlo con docker compose down. No guardes contraseñas reales en el archivo; utiliza variables de entorno o secretos del proveedor.
Buenas prácticas de desarrollo
- Añade un
.dockerignorepara excluirnode_modules, logs y secretos. - Usa imágenes pequeñas y actualizadas.
- No ejecutes el proceso como root cuando puedas evitarlo.
- Registra las versiones utilizadas.
- Elimina contenedores y volúmenes de prueba que ya no necesites.
Errores frecuentes
Si el puerto no responde, comprueba que la aplicación escucha en 0.0.0.0 dentro del contenedor y que el puerto publicado coincide. Si falla npm ci, revisa que exista package-lock.json y que corresponda al archivo de dependencias.
Conclusión
Docker es útil cuando el equipo necesita repetir un entorno y levantar servicios con menos pasos manuales. Empieza con un proyecto pequeño, documenta los comandos y aprende a inspeccionar logs y recursos antes de usar contenedores en producción.
Fuentes oficiales
Si quieres conocer otros artículos parecidos a Docker para principiantes: crear un entorno de desarrollo reproducible puedes visitar la categoría Desarrollo web.
Deja una respuesta

También puede gustarte: