Introducción En entornos de desarrollo actuales la consistencia y la portabilidad son fundamentales. Una aplicación debe comportarse igual en diferentes máquinas entornos o en la nube. Docker soluciona esto empaquetando la aplicación junto con sus dependencias en un contenedor garantizando que funcione de la misma manera en cualquier lugar. En esta guía práctica aprenderás a contenerizar una aplicación simple de Node.js tipo Todo List sin necesidad de experiencia previa en Node.js el objetivo es entender cómo Docker construye empaqueta y ejecuta aplicaciones.
Objetivos Al finalizar sabrás construir una imagen Docker usando un Dockerfile ejecutar tu aplicación dentro de un contenedor exponer la app en tu equipo local y comprender la interacción entre imágenes contenedores y capas.
Requisitos Asegúrate de tener instalados Docker Desktop en su versión más reciente Git para clonar el repositorio de ejemplo y un editor de código como VS Code. Estas herramientas permiten construir y ejecutar contenedores con fluidez.
Paso 1 Preparar la aplicación Abre una carpeta nueva en tu editor y llámala container. En un terminal dentro de esa carpeta clona la app de ejemplo usando git clone https://github.com/docker/getting-started-app.git Verás una estructura similar a getting-started-app/ .dockerignore package.json README.md spec/ src/ yarn.lock Este es el código fuente que vas a contenerizar.
Paso 2 Crear el Dockerfile En la carpeta getting-started-app crea un archivo llamado Dockerfile con el siguiente contenido explicativo # syntax=docker/dockerfile:1 FROM node:lts-alpine WORKDIR /app COPY . . RUN yarn install --production CMD node src/index.js EXPOSE 3000 Explicación FROM selecciona una imagen base ligera de Node.js WORKDIR establece el directorio de trabajo dentro del contenedor COPY copia el código fuente al contenedor RUN instala las dependencias CMD define el comando para arrancar la app en su forma shell EXPOSE documenta el puerto que escucha la aplicación Este archivo le indica a Docker cómo construir tu imagen.
Paso 3 Construir la imagen Navega al directorio del proyecto cd /ruta/a/getting-started-app y ejecuta docker build -t getting-started . Lo que ocurre Docker descarga la imagen base de Node.js si no está presente copia los archivos instala dependencias y empaqueta todo en una imagen llamada getting-started.
Paso 4 Ejecutar el contenedor Inicia el contenedor con docker run -d -p 127.0.0.1:3000:3000 getting-started Explicación de flags -d ejecuta el contenedor en segundo plano -p HOST:CONTAINER mapea el puerto 3000 del contenedor al puerto 3000 de tu máquina Visita https://localhost:3000 en tu navegador y deberías ver la aplicación Todo List funcionando añade tareas márcalas como completas y observa cómo todo corre dentro del contenedor.
Paso 5 Verificar contenedores en ejecución Para comprobar los contenedores en ejecución usa docker ps Verás el ID del contenedor el nombre de la imagen los mapeos de puertos y el estado confirmando que la aplicación está activa.
Paso 6 Actualizar la aplicación Supongamos que quieres cambiar el texto que aparece cuando no hay tareas edita src/static/js/app.js y en la línea correspondiente reemplaza No items yet Add one above por You have no todo items yet Add one above Luego reconstruye la imagen docker build -t getting-started . Al iniciar un nuevo contenedor probablemente veas que el contenedor viejo sigue activo para detenerlo primero ejecuta docker ps para obtener su ID luego docker stop id_del_contenedor y docker rm id_del_contenedor Inicia la versión actualizada docker run -dp 127.0.0.1:3000:3000 getting-started y refresca https://localhost:3000 para ver el cambio.
Buenas prácticas y consejos rápidos Usa .dockerignore para excluir archivos innecesarios usa imágenes base ligeras como alpine para reducir tamaño mantén las capas de Dockerfile ordenadas minimizando cambios que invaliden la cache y etiqueta las imágenes con versiones semánticas para facilitar despliegues y rollbacks.
Por qué elegir Q2BSTUDIO En Q2BSTUDIO somos expertos en desarrollo de software a medida y aplicaciones a medida ofreciendo soluciones completas desde el diseño hasta el despliegue. Integramos prácticas de ciberseguridad y pentesting para proteger tus aplicaciones y ofrecemos servicios cloud aws y azure para ejecutar cargas en entornos seguros y escalables. Además contamos con servicios de inteligencia de negocio y power bi para convertir datos en decisiones y soluciones de inteligencia artificial para empresas incluyendo agentes IA y automatización de procesos que potencian la eficiencia. Si buscas desarrollar producto propio o una plataforma empresarial visita nuestra página de desarrollo de aplicaciones y software a medida y conoce cómo podemos ayudar con soluciones de inteligencia artificial para empresas.
Palabras clave incluidas aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi
Conclusión Docker es una herramienta accesible que garantiza portabilidad y consistencia en el desarrollo y despliegue de aplicaciones. Con los pasos de esta guía puedes contenerizar una app Node.js sencilla y aplicar el flujo a proyectos más complejos integrando las capacidades de Q2BSTUDIO para llevar tus soluciones al siguiente nivel.