如何使用 - Express + Docker + Azure 映射端口
How to map ports with - Express + Docker + Azure
我完全卡在下面了。
正在尝试在 Azure VM 上的 docker 中设置快捷应用程序。
1) 使用 docker-machine create -driver azure 后 VM 一切正常 ...
2) 构建镜像后一切正常:
//Dockerfile
FROM iojs:onbuild
ADD package.json package.json
ADD src src
RUN npm install
EXPOSE 8080
CMD ["node", "src/server.js"]
这是我卡住的地方:
我已经尝试了以下所有方法以及更多方法:
• docker run -P (Then adding end points in azure)
• docker run -p 80:8080
• docker run -p 80:2756 (2756, the port created during docker-machine create)
• docker run -p 8080:80
如果有人可以用 VIP 与内部 vs docker 公开来解释 azure 的设置。
所以在这一切结束时,我尝试使用 Azure 访问的每个端口:
AzureVirtualIP:ALL_THE_PORT
我总是得到一个 ERR_CONNECTION_REFUSED
确定 Express 应用程序是 运行 因为我得到了控制台日志信息。
有什么想法吗?
谢谢
从外部开始,逐步深入,调试:
Azure 之外
<start your container on the Azure VM, then>
$ curl $yourhost:80
在虚拟机上
$ docker run -p 80:8080 -d laslo
882a5e774d7004183ab264237aa5e217972ace19ac2d8dd9e9d02a94b221f236
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64f4d98b9c75 laslo:latest node src/server.js 5 seconds ago up 5 seconds 0.0.0.0:80->8080 something_funny
$ curl localhost:80
0.0.0.0:80->8080
表明您的端口转发已生效。如果您 运行 其他容器,没有正确的权限或有其他网络问题,Docker 可能会给您一个没有转发端口的容器。
如果这行得通但第一次测试不行,则说明您没有正确打开 VM 的端口。可能是您需要设置 Azure 端点,或者您在 VM 上设置了防火墙 运行ning。
容器中
$ docker run -p 80:8080 --name=test -d laslo
882a5e774d7004183ab264237aa5e217972ace19ac2d8dd9e9d02a94b221f236
$ docker exec it test bash
# curl localhost:8080
在最后一个中,我们进入了容器内部。可能未安装 Curl,因此您可能必须先 apt-get install curl
。
如果这不起作用,那么您的 Express 服务器没有在端口 80 上侦听,您需要检查设置。
我完全卡在下面了。
正在尝试在 Azure VM 上的 docker 中设置快捷应用程序。
1) 使用 docker-machine create -driver azure 后 VM 一切正常 ...
2) 构建镜像后一切正常:
//Dockerfile
FROM iojs:onbuild
ADD package.json package.json
ADD src src
RUN npm install
EXPOSE 8080
CMD ["node", "src/server.js"]
这是我卡住的地方:
我已经尝试了以下所有方法以及更多方法:
• docker run -P (Then adding end points in azure)
• docker run -p 80:8080
• docker run -p 80:2756 (2756, the port created during docker-machine create)
• docker run -p 8080:80
如果有人可以用 VIP 与内部 vs docker 公开来解释 azure 的设置。
所以在这一切结束时,我尝试使用 Azure 访问的每个端口:
AzureVirtualIP:ALL_THE_PORT
我总是得到一个 ERR_CONNECTION_REFUSED
确定 Express 应用程序是 运行 因为我得到了控制台日志信息。
有什么想法吗?
谢谢
从外部开始,逐步深入,调试:
Azure 之外
<start your container on the Azure VM, then>
$ curl $yourhost:80
在虚拟机上
$ docker run -p 80:8080 -d laslo
882a5e774d7004183ab264237aa5e217972ace19ac2d8dd9e9d02a94b221f236
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
64f4d98b9c75 laslo:latest node src/server.js 5 seconds ago up 5 seconds 0.0.0.0:80->8080 something_funny
$ curl localhost:80
0.0.0.0:80->8080
表明您的端口转发已生效。如果您 运行 其他容器,没有正确的权限或有其他网络问题,Docker 可能会给您一个没有转发端口的容器。
如果这行得通但第一次测试不行,则说明您没有正确打开 VM 的端口。可能是您需要设置 Azure 端点,或者您在 VM 上设置了防火墙 运行ning。
容器中
$ docker run -p 80:8080 --name=test -d laslo
882a5e774d7004183ab264237aa5e217972ace19ac2d8dd9e9d02a94b221f236
$ docker exec it test bash
# curl localhost:8080
在最后一个中,我们进入了容器内部。可能未安装 Curl,因此您可能必须先 apt-get install curl
。
如果这不起作用,那么您的 Express 服务器没有在端口 80 上侦听,您需要检查设置。