无法从Azure主机虚拟机外部访问Windows容器

我已经在Windows 2016的Azure中创build了一个docker容器。下面是我的DOCKERFILE:

FROM microsoft/aspnet COPY ./ /inetpub/wwwroot EXPOSE 443 EXPOSE 80 

我这样运行:

 docker run -d --name myctr myimg -p 443:443 

我可以通过在hosts文件中configuration的域名来浏览它。 成功!

在Azurenetworking之外的远程机器上,我使用Azure虚拟机的IP地址来configuration我的主机文件(并尝试使用容器的IP地址 – 不确定使用哪一个!

但是,我无法从Azure外部浏览它。

Windows防火墙

我已经禁用了Windows防火墙。

Azure NSG

我build立了一个networking安全组,允许443端口的stream量(我有另一个网站在这个盒子上运行,并且可以从Azure以外的地方访问,成功)

Netstat显示如下:

 netstat -ano | findstr :443 | findstr ESTABLISHED TCP 10.0.0.4:49682 99.99.99.99:443 ESTABLISHED 1252 TCP 10.0.0.4:49700 99.99.99.98:443 ESTABLISHED 2476 TCP 10.0.0.4:49718 99.99.99.92:443 ESTABLISHED 5112 

如何configuration容器/主机/ Azure,以便从Azure之外的远程计算机上查看托pipe在容器上的网站? 任何想法非常感谢!

如何configuration容器/主机/ Azure,以便从Azure之外的远程计算机上查看托pipe在容器上的网站?

默认情况下, -p 80:80意味着我们将容器的端口80映射到主机端口80.所以现在其他人可以访问您的主机的端口80来击中容器的端口80。

这里是一个例子:

 PS C:\Users\jason> docker run -d -p 80:80 microsoft/iis 3bf999503cd3110ae8fb1c01cc5c8c6153645a0d533960339490a0ba50634d3a 

将端口80添加到NSG入站规则后,我可以通过Internet浏览它:

在这里输入图像说明

我build立了一个networking安全组,允许443端口的stream量(我有另一个网站在这个盒子上运行,并且可以从Azure以外的地方访问,成功)

在你的场景中,你的端口443正在使用,我们不能绑定端口443的docker,请尝试另一个端口。