Запуск нескольких независимых Docker-демонов в Windows с изоляцией Hyper-V и LCOW
Я пытаюсь запустить несколько Docker-демонов, настроенных для запуска контейнеров с изоляцией Hyper-V и LCOW на одном компьютере с Windows 10. Мне удалось настроить демонов для управления их собственными файлами данных, но я все еще изо всех сил пытаюсь получить чистую конфигурацию сети.
Когда запускается первый демон, он связывается с локальной сетью "nat" для разрешения DNS. Когда запускается второй демон, он пытается подключиться к той же сети "nat", а затем терпит неудачу, поскольку порт 53 уже используется первым демоном.
ERRO [2019-02-15T15: 50: 58.194988300Z] Установка / запуск резолвера завершилась неудачно для контейнера 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, которое используется в этом случае, не поддерживает его.
При использовании изоляции Hyper-V и LCOW кажется, что WinNAT больше не используется, так как Get-NetNat
не возвращает конфигурацию сети NAT, несмотря на то, что DNS работает правильно. Я не уверен, что я прав в чем-либо, возможно ли это, даже если применяется любое другое ограничение Windows...