gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 02:29:14 35 4
gpt4 key购买 nike

我有 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、其他容器以及其他虚拟机访问。我想这必须根据其名称(主机名)来完成,因为每次重新启动后 IP 都会更改。我应该如何使我的容器可以从其他 VM2 虚拟机访问 - 我应该在网络配置中进行任何修改吗?或者我只是为了确保它们都使用相同的 DNS 服务器?当然,我会公开端口,但是我应该进行任何类型的额外网络配置以允许该特定端口上的流量吗?我读到默认情况下不允许网络流量,并且 Windows 可能会阻止某些操作。

我将不胜感激对此的帮助。谢谢

最佳答案

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

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

然后就可以通过公网IP和虚拟机的主机端口访问外部容器了。

更新:

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

如果您使用 Linux 容器,则可以在 VNet 中部署容器,但需要使用以下步骤 here 。然后,容器拥有私有(private) IP,并且可以通过该私有(private) IP 在 VNet 中进行访问。

关于azure - docker - Azure 容器实例 - 如何使我的容器可从外部访问和识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65791042/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com