通过 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
效果很好。
我是 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
效果很好。