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

时间:2017-11-16 20:43:41

标签: azure docker containers azure-virtual-machine windows-server-2016

我在Windows 2016上的Azure中创建了一个docker容器。 这是我的DOCKERFILE:

FROM microsoft/aspnet

COPY ./ /inetpub/wwwroot

EXPOSE 443
EXPOSE 80

我这样运行起来:

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

我可以通过我在hosts文件中配置的域名浏览它。 SUCCESS!

在Azure网络之外的远程计算机上,我使用Azure VM的IP地址配置我的hosts文件(并且还尝试使用容器的IP地址 - 不确定要使用哪个容器!

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

Windows防火墙

我已禁用Windows防火墙。

Azure NSG

我已经设置了一个网络安全组,允许端口443上的流量(我在这个盒子上运行了另一个网站,并且可以从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

如何配置容器/主机/ Azure,以便我可以从Azure外部的远程计算机上查看容器上托管的网站? 任何想法都非常感谢!

1 个答案:

答案 0 :(得分:0)

  

如何配置容器/主机/ Azure以便我可以查看   从外面的远程机器托管在容器上的网站   天青?

默认情况下,-p 80:80表示我们将容器的端口80映射到主机端口80.所以现在其他人可以访问主机的端口80以访问容器的端口80.

这是一个例子:

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

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

enter image description here

  

我已经建立了一个网络安全组,允许端口上的流量   443(我在这个盒子上运行了另一个网站,可以访问它   来自Azure之外,取得了成功)

在您的方案中,您的端口443正在使用中,我们无法将docker与端口443绑定,请尝试另一个端口。