[英]Docker node.js app not listening on port
我正在使用node.js Web应用程序并使用localhost:8080
通过发送Postman的请求来测试它。 每当我在不使用Docker的情况下运行应用程序(npm start)时,应用程序工作正常并侦听端口8080
。
当我使用Docker运行应用程序时,应用程序似乎正在正常运行(它显示它正在运行并在端口8080
上侦听),但是使用Postman无法访问(我收到错误: Could not get any response
)。 你知道这个的原因是什么吗?
Dockerfile:
FROM node:8
WORKDIR /opt/service
COPY package.json .
COPY package-lock.json .
RUN npm i
COPY . .
EXPOSE 8080
CMD ["npm", "start"]
我使用以下命令在Docker中构建并运行应用程序:
docker build -t my-app .
docker run my-app
我已尝试绑定端口,如下所述,但我也无法通过端口8181
到达服务器。
docker run -p 8181:8080 my-app
在我的应用程序中,服务器以下列方式进行侦听(使用Express
):
app.listen(8080, () => {
console.log('listening on port 8080');
})
我也试过用:
app.listen(8080, '0.0.0.0', () => {
console.log('listening on port 8080');
})
docker port命令返回:
8080/tcp -> 0.0.0.0:8181
你们有没有想到这可能是什么原因?
更新 :使用从docker-machine( 192.168.99.100:8181
)获得的IP,我能够访问该应用程序。 但是,我希望能够从localhost:8181
到达它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.