Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

210
Views
No se puede conectar con el contenedor docker

Tengo una aplicación de servidor-api.

En mi host local, solo necesito 2 comandos para iniciar la aplicación:

  1. instalar npm
  2. inicio de npm

No más, y funciona perfecto en el puerto 3000.

Estoy tratando de dockerizar mi servidor para iniciarlo con docker-compose.

Ok, este es mi dockerfile:

 FROM node:14-alpine AS development ENV NODE_ENV development WORKDIR /app COPY package.json . COPY package-lock.json . RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"]

Lanzo el comando build para construir la imagen:

 docker build --tag server-api .

Y cuando termina, ejecuto el contenedor:

 docker run -p 80:3000 server-api

Los registros son perfectos, dice que se está ejecutando en el puerto 3000 y que debo conectarme a localhost: 3000 para revisar mi aplicación server-api.

Pero, entiendo que ese es el puerto del contenedor, tuve que lanzar el contenedor con el comando -p 80:3000, así que reviso el puerto 80 de mi computadora... pero no pasa nada.

¿Cuál debería ser mi solución de problemas?

Ya intenté obtener información sobre la conexión con mi contenedor:

 docker exec -it <container_id> sh

Pero todo se ve perfecto y es una aplicación simple.

¿Qué estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Como dice @ErikMD, todas las aplicaciones de back-end deben escuchar la IP especial 0.0.0.0 para ser dockerizadas (este problema no ocurre con React).

Necesito leer esta publicación: https://nodejs.org/en/docs/guides/nodejs-docker-webapp/

Y para resolver mi problema verifico cómo cambiar localhost a 0.0.0.0 como host.

De forma predeterminada, mi host era localhost.

Entonces, cambio esto en mi paquete.json:

 "scripts": { "start": "json-server --watch db.json" },

Para esto:

 "scripts": { "start": "json-server --host 0.0.0.0 --port 8080 --watch db.json" },

Y ahora por fin funciona perfecto.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!