“Preparación del entorno local para desarrollo con node.js en Docker.”
Primero, asegúrate de que tienes Docker y VS Code instalados.
Crea un archivo Dockerfile en tu proyecto con el siguiente contenido:
# Usa una imagen oficial de Node.js
FROM node:18
# Establece el directorio de trabajo en el contenedor
WORKDIR /app # Copia los archivos del proyecto COPY package*.json ./
# Instala las dependencias
RUN npm install
# Copia el resto del código
COPY . .
# Expone el puerto donde corre el servicio
EXPOSE 3000
# Comando para iniciar el servidor
CMD ["node", "server.js"]Si deseas administrar más fácilmente tu servicio, usa Docker Compose con este archivo docker-compose.yml:
version: "3"
services:
node-app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
command: ["node", "server.js"]Instala las extensiones necesarias en VS Code
Crea un archivo .devcontainer/devcontainer.json
En la carpeta raíz del proyecto, agrega la siguiente configuración:
{
"name": "Node.js Docker",
"dockerComposeFile": "docker-compose.yml",
"service": "node-app",
"workspaceFolder": "/app",
"extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] } Abre el proyecto en el contenedor
Ctrl + Shift + P y busca:Ejecuta en la terminal, esto creará un nuevo archivo package.json :
npm init -yLuego revisa que tu package.json tenga al menos estas líneas:
{
"name": "mi-proyecto",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"start": "node server.js"
}
}Si tienes un cliente JavaScript (ej. en el navegador) que se conecta a la API Node.js, usa:
fetch("http://localhost:3000/api")
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));Asegúrate de que el servicio Node.js escuche en 0.0.0.0, no solo en localhost, para que sea accesible desde el contenedor.
Ejemplo en server.js:
const express = require("express");
const app = express();
const api = "/";
app.get(api, (req, res) => {
res.send("Hola, mundo!");
});
app.listen(3000, "0.0.0.0", () => {
console.log("Servidor corriendo en http://0.0.0.0:3000");
});Ejecuta en la terminal:
docker system prune -a
docker pull node:18
docker-compose down
docker system prune -a
docker-compose up --buildAhora tu servicio Node.js corre dentro de Docker y puedes desarrollar y depurar desde VS Code.
If you see mistakes or want to suggest changes, please create an issue on the source repository.
For attribution, please cite this work as
Sosa (2025, May 26). Blog de José R Sosa: Node.js para desarrollo en Docker . Retrieved from https://josersosa.github.io/personalweb/posts/2026-02-01-nodejs-para-desarrollo-en-docker/
BibTeX citation
@misc{sosa2025node.js,
author = {Sosa, José R},
title = {Blog de José R Sosa: Node.js para desarrollo en Docker },
url = {https://josersosa.github.io/personalweb/posts/2026-02-01-nodejs-para-desarrollo-en-docker/},
year = {2025}
}