docker - 重新启动后Windows 10 Docker网络DNS无法正常工作

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

我不确定这是否是当前版本的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中做类似的事情,尽管我不太清楚实时生产的最佳网络配置是什么,但是我需要多个应用程序(在通过各自子域访问的同一节点上的独立容器)。

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

    最佳答案

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

    基本上,Windows 10的1709更新引入了一个问题,导致Hyper-V网络无法正常运行。

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

    关于docker - 重新启动后Windows 10 Docker网络DNS无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42418077/

    相关文章:

    docker - 启动具有多个网络接口(interface)的容器

    Docker 1.10 通过主机名从主机访问容器

    docker - 使用Letsencrypt的Docker HAProxy SSL终止

    尽管 docker-compose.yml 中有不同的 container_name,docker-compose 仍会重新创建正在运行的容器

    android-studio - 无法在 Windows 10 中加载 repositories.cfg

    javascript - 如果打开,window.open() 在 IE11 中返回 null

    spring - 运行 "apereo/cas"docker image 打印 "Failed to start connector"错误

    docker - Docker Compose同时使用主机和桥接网络

    internet-explorer - 如何在 Windows 10 中固定/取消固定 Microsoft Edge 开发人员工具

    docker - FIWARE Orion订阅创建失败