Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
¿Cómo acceder a la aplicación de contenedor Docker en local?

Tengo una aplicación Node.js/Express simple:

 const port = 3000 app.get('/', (req, res) => res.send('Hello World!')) app.listen(port, () => console.log(`Example app listening on port ${port}!`))

Funciona bien cuando lo inicio como: node src/app.js

Ahora estoy tratando de ejecutarlo en un contenedor Docker. Dockerfile es:

 FROM node:8 WORKDIR /app ADD src/. /app/src ADD package.json package-lock.json /app/ RUN npm install COPY . /app EXPOSE 3000 CMD [ "node", "src/app.js" ]

Comienza bien: docker run <my image>:

 Listening on port 3000

Pero ahora no puedo acceder a él en mi navegador: http://localhost:3000

 This site can't be reached localhost refused to connect.

Lo mismo sucede si trato de ejecutarlo dentro de docker-compose:

 version: '3.4' services: service1: image: xxxxxx ports: - 8080:8080 volumes: - xxxxxxxx myapp: build: context: . dockerfile: Dockerfile networks: - private ports: - 3000 command: node src/app.js

No estoy seguro si trato bien con los puertos en ambos archivos acoplables

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Cuando trabaja con Docker, debe definir el host de su aplicación como 0.0.0.0 en lugar de localhost .

Para su aplicación express, puede definir el host en app.listen call.

Consulte la documentación : app.listen([puerto[, host[, backlog]]][, devolución de llamada])

Su código expreso debe actualizarse a:

 const port = 3000 const host = '0.0.0.0' app.get('/', (req, res) => res.send('Hello World!')) app.listen(port, host, () => console.log(`Example app listening on ${port}!`))

También es importante publicar puertos docker:

  • Ejecutando docker: docker run -p 3000:3000 <my image>
  • Ejecutando docker-compose:
 services: myapp: build: context: . dockerfile: Dockerfile networks: - private ports: - 3000:3000 command: node src/app.js
over 4 years ago · Santiago Trujillo Denunciar

0

Necesitas publicar puertos

 docker run -p 3000:3000 <my image>

-p - significa publicar

over 4 years ago · Santiago Trujillo Denunciar

0

prueba esto:

 services: myapp: build: context: . dockerfile: Dockerfile networks: - private ports: - 3000:3000 ##THIS IS THE CHANGE, YOU NEED TO MAP MACHINE PORT TO CONTAINER command: node src/app.js
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda