Windows Server Core Docker容器网络问题

问题描述 投票:1回答:1

我有两个通过docker创建的容器,并具有以下设置:

docker-compose.yml文件:

version: "3.7"
services:
    web:
        image: img_web
        container_name: cont_web

    svcs:
        image: img_svcs
        container_name: cont_svcs
        depends_on:
            - web

img_web的Dockerfile:

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
WORKDIR /inetpub/wwwroot

img_svcs的Dockerfile:

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
WORKDIR /inetpub/wwwroot

docker-compose up -d之后,并从cont_svcs容器中,我可以:

  1. 通过IP Ping cont_web

  2. 通过主机名Ping cont_web(容器ID:bf4001be1e84自动生成。)

但是我不能Ping cont_web容器的别名(web)

我检查了两个容器,在网络部分可以看到以下内容:

"Networks": {
            "test_default": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": [
                    "bf4001be1e84",
                    "web"
                ],
...

两个容器都连接到'test_default'驱动程序。

NB:甚至我也无法通过计算机本身内的Web别名来对W​​eb计算机执行ping操作。

非常感谢您的帮助和反馈。

谢谢山姆

docker docker-compose containers docker-machine windows-server-2019
1个回答
0
投票

尝试添加一个明确的NAT网络以用于您的部署。为此,请在docker-compose文件末尾添加以下内容-

networks:
  default:
    external:
      name: nat

现在,尝试使用服务名称对服务进行ping操作。

如果不起作用,则可能是您的本地计算机上安装了安全防火墙或Internet Security应用程序,这很可能阻止了dockerd.exe DNS服务。尝试实施一些规则以允许与基于[[docker的服务有关的TCP和UDP端口。

此外,您也可以尝试这种解决方法来正确解析DNS- https://github.com/docker/for-win/issues/1976#issuecomment-418151244
© www.soinside.com 2019 - 2024. All rights reserved.