通过Docker访问Web应用程序时连接被拒绝

我对Docker相当陌生,所以我正在尝试写一个我编写的节点Web应用程序和Docker-itize。 该应用程序是开源的,所以你可以在这里find它和Dockerfile: 爪哇战争

所以你不必点击,Dockerfile在这里:

FROM mhart/alpine-node WORKDIR /src ADD . . RUN npm install EXPOSE 5050 COPY config.json /src/config.json CMD npm run docker 

所以我打开Docker快速入门terminal(我在Mac OS X上),去我的path,并build立它:

 docker build -t paw-wars . 

build立之后,我运行它:

 docker run paw-wars 

它旋转起来很好,并说它正在监听端口5050.我从docker-machine ip default ,并尝试连接到它端口5050,但我得到连接拒绝。 我已经试图解决这个问题的大多数search告诉我,我需要确保使用正确的IP,但我几乎积极,我正在做这个。 不太确定我做错了什么。 这不是在回购,但我也尝试绑定到我的应用程序(index.js) 0.0.0.0 ,但也没有工作。

谢谢!

问题是你必须在docker run命令中指定一个端口。 我以为在你的dockerfile中使用EXPOSE就足够了,但事实并非如此。 这只是为了让端口暴露在内部。

docker run -p 5050:5050 paw-wars效果很好。