【问题标题】:docker - Azure Container Instance - how to make my container accesable and recognized from outside?docker - Azure Container Instance - 如何使我的容器可从外部访问和识别?
【发布时间】:2021-04-23 17:25:22
【问题描述】:

我有 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 docker dns dockerfile docker-networking


    【解决方案1】:

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

    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 中,但您需要按照步骤here 进行操作。然后容器具有专用 IP,并且可以通过该专用 IP 在 VNet 中进行访问。

    【讨论】:

    • 嗨查尔斯,我的容器将有公共 IP 而不是私有 IP。这就是为什么我要问如何使它可以访问。我定义的是 ACI 而不是 VM,但我将通过 CLI 而非 Azure 门户定义 Dockerfile/docker-compose - 因为 Azure CLI 提供了这种可能性。但是,由于我将选择 ACI 与私有 IP 一起使用,您能否根据此修改您的回复 - 必须更改什么?您可以在 ACI 的文档中看到它提供了使用 docker-compose 的可能性:docs.microsoft.com/en-us/azure/container-instances/…
    • @Dejan 查看 ACI 中 Windows 容器的更新。
    • 感谢更新你能告诉我我们将如何为 Linux 做同样的事情吗?因为我们已经为 Linux 和 Windows 准备了镜像。那么当我们有 Linux 容器时应该定义什么 - 如何使用私有 IP 访问?谢谢
    • 谢谢我标记了答案。这帮助很大!如果我可以正确得出结论:我可以使用 az create 部署它并引用所有属性,也可以使用 YAML 文件或资源管理器模板。我就是这么理解的,但如果你也能证实我的话,我将非常感激。所以基本上我们不能使用 docker compose 文件和/或命令来部署它。再次感谢您的所有努力。
    • @Dejan 是的,您可以使用 CLI 或模板或 YAML。但是如果你想部署多个容器,更好的方法是 YAML 和模板。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多