Контейнер Windows не разрешает контейнер по имени службы, если используется пользовательская сеть - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть простое Dockerfile

FROM mcr.microsoft.com/windows/servercore:1803
CMD powershell "Start-Sleep -s 100000"

и docker-compose, определяющее 2 службы a и b:

version: "3.5"
    services:
        a:
           build: .
        b:
           build: .

 networks:
     default:
         external: true
         name: app

`` `

После docker-compose up --build --force-recreate и подключения к одному из контейнеров я не могу разрешить контейнеры по именам их служб:

PS C:\> ping a
Ping request could not find host a. Please check the name and try again.
PS C:\> ping b
Ping request could not find host b. Please check the name and try again.
PS C:\> Resolve-DnsName a
Resolve-DnsName : a : The filename, directory name, or volume label syntax is incorrect
At line:1 char:1
+ Resolve-DnsName a
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (a:String) [Resolve-DnsName], Win32Exception
    + FullyQualifiedErrorId : ERROR_INVALID_NAME,Microsoft.DnsClient.Commands.ResolveDnsName

PS C:\> Resolve-DnsName b
Resolve-DnsName : b : The filename, directory name, or volume label syntax is incorrect
At line:1 char:1
+ Resolve-DnsName b
+ ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (b:String) [Resolve-DnsName], Win32Exception
    + FullyQualifiedErrorId : ERROR_INVALID_NAME,Microsoft.DnsClient.Commands.ResolveDnsName

PS C:\>

Но если я удаляю секцию networks из docker-compose, разрешение имен служб работает нормально.Если я создаю и использую мостовую сеть в Linux, все также работает нормально.

Это поведение спроектировано или я что-то не так делаю?

...