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

Connection refused when accessing web app through Docker

我是 Docker 的新手,所以我正在尝试使用我编写的节点 Web 应用程序并 Docker-ize 它。该应用程序是开源的,因此您可以在此处找到它和 Docker 文件:Paw-Wars

所以您不必点击,Docker文件在这里:

FROM mhart/alpine-node

WORKDIR /src
ADD . .

RUN npm install

EXPOSE  5050
COPY config.json /src/config.json
CMD npm run docker

所以我打开 Docker 快速启动终端(我在 Mac OS X),转到我的路径,然后构建它:

docker build -t paw-wars .

构建后,我运行它:

docker run paw-wars

它旋转得很好,并说它正在侦听端口 5050。我从 docker-machine ip default 获取 ip,并尝试在端口 5050 上连接到它,但连接被拒绝。我为解决此问题所做的大多数搜索都告诉我,我需要确保使用正确的 IP,但我几乎可以肯定我正在这样做。不太确定我做错了什么。它不在回购协议中,但我也尝试在我的应用程序中绑定到 0.0.0.0 (index.js),但这也没有用。

谢谢!

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

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