【问题标题】:Windows 10 Docker Network DNS doesn't work after reboot重启后 Windows 10 Docker 网络 DNS 不起作用
【发布时间】:2017-07-14 01:43:21
【问题描述】:

我不确定这是否是当前版本的 Windows Docker 网络的问题,还是我的配置不佳和误解,但我有以下设置:

  • 2 个 Docker 容器(使用 Microsoft/ASP.NET 映像作为基础构建)在每个容器中运行一个 .NET MVC 应用程序。
  • 1 个运行 SQL Server 的 Docker 容器(使用 Microsoft/mssql-server-windows 映像构建)

当我创建所有 3 个容器时,一切正常,我可以使用它们的名称附加和 ping 所有其他容器,而不会出现任何问题。应用程序运行并可以如我所愿地相互通信。

但是,当我重新启动机器并再次启动所有容器时,它们无法再使用它们的名称相互 ping/通信(使用 IP 地址很好)。

我已在默认 NAT 网络上尝试过此操作,还尝试将 NAT 网络替换为我自己的自定义 NAT 网络。

为了解决这个问题,我必须为每个容器运行强制网络断开命令:

docker network disconnect nat <containername> --force

然后我必须在启动它们之前将每个容器重新连接到网络。然后,所有容器都可以使用它们的名称和 IP 地址相互 ping/通信。

仅供参考,这是一个开发环境,但我希望使用 Windows Server 2016 VM 在 Azure 中做类似的事情,虽然我不太清楚现场生产的最佳网络配置是什么,因为我需要多个同一节点上的应用程序(在单独的容器中)通过它们自己的子域访问。

任何帮助或指导都会很棒。

【问题讨论】:

    标签: docker windows-10 docker-networking docker-for-windows


    【解决方案1】:

    我不确定,部分原因是在我遇到任何其他示例之前几个月就提出了这个问题,但这听起来与https://github.com/docker/for-win/issues/1038 中描述的问题非常相似。

    基本上,Windows 10 的 1709 更新似乎存在一个问题,导致 Hyper-V 网络无法按应有的方式工作。

    似乎有两种常见的解决此问题的方法:关闭控制面板中的“快速启动” => 电源选项 => 系统设置,或在启动后重新启动 Docker for Windows 和任何容器。我还以为我在 Microsoft 博客文章中看到了一些内容,表明根本问题现已解决,并将包含在 Windows 10 的更新中,但遗憾的是,我无法再找到该信息或问题所在的特定版本号(理论上)解决了。很可能是延迟的 1803 年“Spring Creators Update”发布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多