Я пытаюсь запустить несколько демонов 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 ...