繁体   English   中英

docker - Azure 容器实例 - 如何使我的容器可从外部访问和识别?

[英]docker - Azure Container Instance - how to make my container accesable and recognized from outside?

我有 windows 容器,它应该访问外部 VM 数据库(不在容器中,比如说 VM1),所以我会为它们定义 l2bridge 网络驱动程序,以便使用相同的虚拟网络。

docker network create -d "l2bridge" --subnet 10.244.0.0/24 --gateway 10.244.0.1 
-o com.docker.network.windowsshim.vlanid=7 
-o com.docker.network.windowsshim.dnsservers="10.244.0.7" my_transparent

所以我想我们需要坚持这一点。 但是现在我还需要让我的容器可以从外部访问,在端口 9000 上,从其他容器以及其他 VM 访问。 我想这必须根据其名称(主机名)来完成,因为 IP 将在每次重新启动后更改。 我应该如何让我的容器可以从其他一些 VM2 虚拟机访问 - 我应该在网络配置中进行任何修改吗? 或者我只是为了确保他们都使用相同的 DNS 服务器? 当然我会公开端口,但我应该做任何额外的网络配置以允许该特定端口上的流量吗? 我读过默认情况下不允许网络流量,并且 Windows 可能会阻止某些事情。

我会很感激这方面的帮助。 谢谢

看来您不使用 Azure 容器实例,您只是在 Windows 虚拟机中运行容器。 如果我是对的,使容器可以在外部访问的最好方法是在不设置网络的情况下运行容器,只需要将端口 map 到主机端口即可。 然后可以通过暴露的端口在外部访问容器。 这是示例命令:

docker run --rm -d -p host_port:container_port --name container_name image

然后就可以通过公共的IP和VM的宿主机端口访问外面的容器了。

更新:

好的,如果您使用 ACI 通过 docker-compose 部署容器,那么您需要知道 ACI 不支持 VNet 中的 Windows 容器。 这意味着无法在 VNet 中使用私有 IP 创建 Windows 容器。

如果您使用 Linux 容器,那么您可以在 VNet 中部署容器,但您需要按照此处的步骤进行操作。 然后容器具有专用 IP,并且可以通过该专用 IP 在 VNet 中访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM