Запуск нескольких независимых Docker-демонов в Windows с изоляцией Hyper-V и LCOW - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь запустить несколько демонов Docker, настроенных для запуска контейнеров с изоляцией Hyper-V и LCOW на одном компьютере с Windows 10.Мне удалось настроить демоны для управления их собственными файлами данных, но я все еще пытаюсь получить чистую конфигурацию сети.

Когда запускается первый демон, он связывается с локальной сетью "nat" для разрешения DNS,Когда запускается второй демон, он пытается подключиться к той же сети «nat», а затем завершается неудачей, поскольку порт 53 уже используется первым демоном.

ERRO [2019-02-15T15: 50: 58.194988300Z] Resolver Setup / Start не удалось для контейнера nat, «ошибка при открытии сервера имен сокетов прослушивания udp 172.18.64.1:53: bind: обычно разрешено только одно использование каждого адреса сокета (протокол / сетевой адрес / порт)».Контейнеры, запущенные этим демоном, не могут выполнять разрешение имен.Доступ через IP все еще работает должным образом.

Вот конфигурация dockerd, которую я сейчас использую:

{
  "registry-mirrors": [],
  "insecure-registries": [],
  "bridge": "mydaemon1",
  "data-root": "C:\\Users\\myuser\\Desktop\\Docker\\Docker",
  "deprecated-key-path": "C:\\Users\\myuser\\Desktop\\Docker\\Docker\\config\\key.json",
  "debug": true,
  "exec-root": "C:\\Users\\myuser\\Desktop\\Docker\\Docker\\exec-root",
  "exec-opts": [
    "isolation=hyperv"
  ],
  "experimental": true,
  "group": "mydaemon-docker",
  "hosts": [
    "npipe:////./pipe/mydaemon1_engine"
  ],
  "pidfile": "C:\\Users\\myuser\\Desktop\\Docker\\Docker\\docker.pid",
  "storage-opts": [
    "lcow.kirdpath=C:\\Users\\myuser\\Desktop\\Docker\\server\\resources",
    "lcow.kernel=lcow-kernel",
    "lcow.initrd=lcow-initrd.img"
  ]
}

Я попытался настроить конфигурацию bridge, но это не удалосьизменить что-нибудь.Демон всегда пытается подключиться к сети nat.Похоже, что единственным поддерживаемым значением является none, которое удаляет стандартное eth0 в контейнерах и любую поддержку DNS.

Можно ли настроить сеть, используемую для разрешения DNS, то есть nat здесь?
В идеале я хочу, чтобы у демона была собственная, выделенная сеть nat.

Я знаю, что это невозможно сделать в Docker для Windows при использовании MobyVM в качестве WinNAT, который используется в этомcase, не поддерживает его .
При использовании изоляции Hyper-V и LCOW кажется, что WinNAT больше не используется, так как Get-NetNat не возвращает конфигурацию сети NAT, несмотря на то, что DNS работает нормально.Я не уверен, что я прав в чем-либо, возможно ли это, даже если применяются какие-либо другие ограничения Windows ...

...