Domina los dev containers en VS Code para estandarizar tu entorno de Node con Docker. Aquí verás cómo aislar dependencias, alinear versiones y ejecutar una API con Express de forma reproducible para todo el equipo, sin dolores de cabeza ni configuraciones manuales repetidas.
¿Qué problema resuelven los dev containers en Docker y VS Code?
Los dev containers unifican el entorno de desarrollo y evitan conflictos de versiones. Si alguien usa Node 21 y otra persona 10 u 11, surgen errores por compatibilidad de versiones. Con un dev container, todo el equipo usa la misma imagen y configuración, logrando homologación del entorno. Además, las dependencias se instalan dentro del contenedor, no en tu sistema.
Aislamiento seguro para pruebas de ciberseguridad: inyección SQL y denegación de servicio sin afectar a terceros.
Estandarización de versiones de Node y herramientas en el proyecto.
Extensiones sincronizadas en VS Code vía devcontainer.json.
Sin Docker build manual: VS Code gestiona la construcción y apertura del contenedor.
Visibilidad en Docker Desktop: verás la imagen de Node en uso y el contenedor activo.
Reproducibilidad desde un repositorio de GitHub con dev container: clona, abre y trabaja sin configurar nada.
¿Cómo crear y abrir un dev container en VS Code?
El flujo es directo y guiado por el asistente de Dev Containers en VS Code. Centraliza todo en una carpeta limpia para mantener tu espacio aislado y ordenado.
Crea una carpeta llamada “dev containers” y ábrela en VS Code.
Crea app.js con una pequeña API de Node.
Abre la paleta: presiona control shift p y busca “Dev Containers”.
Elige agregar configuración de dev container al espacio de trabajo.
Selecciona la opción sugerida: Node y TypeScript con Node 22 por defecto.
Omite características adicionales y archivos opcionales si no los necesitas.
En extensiones de VS Code, añade “Node Essentials” al devcontainer.json desde el engrane: agregar a devcontainer.json.
Reabre el proyecto en contenedor desde la barra amarilla: reabrir en un container.
Espera a que VS Code construya y arranque el entorno; verás las extensiones sugeridas instalándose.
¿Cómo preparar una API de Node con Express?
Dentro del contenedor, las dependencias se quedan en el contenedor. Así tu máquina local permanece limpia y el equipo comparte exactamente el mismo setup.
npm init -y
npminstall express
app.js (ruta /Platzi y puerto 3000):
const express =require('express');const app =express();app.get('/Platzi',(req, res)=>{ res.send('Hola desde un dev container con Express.');});const port =3000;app.listen(port,()=>{console.log(`Escuchando en http://localhost:${port}/Platzi`);});
La terminal ahora indica Node y el nombre del dev container, no WSL.
Los paquetes de npm residen en el contenedor, no en tu entorno local.
En Docker Desktop verás la imagen de Node en uso y el contenedor ejecutándose.
¿Qué habilidades y conceptos refuerzas con esta práctica?
Este flujo conecta conceptos clave del trabajo moderno con contenedores y desarrollo colaborativo. Te ayuda a producir de forma consistente y sin fricción entre equipos.
Docker, contenedores y microservicios: empaquetado y ejecución aislada con orquestadores en mente.
Ciberseguridad en entorno controlado: pruebas de inyección SQL y denegación de servicio sin riesgos externos.
Dev containers y devcontainer.json: definición de entorno, extensiones y configuración compartida.
Compatibilidad de versiones: todos con Node 22 por defecto, sin desalineación.
Productividad en VS Code: instalación automática de extensiones como “Node Essentials”.
Automatización sin Docker build manual: VS Code gestiona la construcción y reapertura.
Observabilidad en Docker Desktop: validación de imagen y contenedor activos.
Reutilización desde GitHub: si el repo trae dev container, clona y ponte a trabajar de inmediato.
¿Te gustaría probarlo en tu equipo o proyecto personal y compartir qué extensiones agregarías al devcontainer.json?
Es muy practico para trabajar en proyectos legacy que requieren versiones viejas y distintas de Node a las instaladas en local. Obviamente podríamos usar NVM, pero seguimos ensuciando nuestro sistema, esta es una forma mucho más limpia de trabajar.
exelente, ya dias queria saber como realizar esto. Busque en varios lados y no pense encontrar lo que ya dias buscaba aqui. Gracias
Muy buena clase, seguiré investigando sobre los devcontainers, ya que es como duplicar el vscode que necesitamos en nuestro equipo para cada integrante, y si llegan personas nuevas se ahorra el tiempo de instalaciones de extensiones y configuraciones
Super!!!!!
docker no se creo para micro servicios, fue creado para desarrollo, para que los desarrolladores pudieran llevarse su entorno de trabajo fácilmente, después se le vio la utilidad de microservicios
que buen bonus para el curso fue dev containers!
Muchas gracias por las clases, estoy haciendo un proyecto para posgrado y agradezco el momento en que encontré este curso. Ahora puedo seguir con seguridad en mi proyecto.
Excelente curso, muy claro todos los temas explicados por el profesor