На хосте Debian-Stretch (подключенном к физической локальной сети) У меня есть новая установка docker (v18.09) с одним контейнером базы данных (порт, сопоставленный с хостом), и я запускаю KVM/libvirt с некоторыми виртуальными машинами Debian-Stretch. Я могу получить доступ к контейнеру docker и виртуальным машинам из локальной сети (в зависимости от конфигурации через SSH-туннель или напрямую), но я изо всех сил пытаюсь получить доступ к контейнеру docker из виртуальных машин.
# brctl showbridge name bridge id STP enabled interfacesbr-f9f3ccd64037 8000.0242b3ebe3a0 no docker0 8000.024241f39b89 no veth35454acvirbr0 8000.525400566522 yes virbr0-nic
Прочитав несколько дней, я нашел в этом посте одно очень убедительное решение Докер и KVM с мостом (оригинал), что я не приступил к работе. Решение предлагает запустить docker с помощью однострочного конфигурационного демона.json-код для использования моста KVM "по умолчанию". Как это было бы здорово! Есть ли какая-нибудь надежда?
Я попробовал две разные конфигурации для подключения к сети между виртуальными машинами KVM. В обоих случаях связь между виртуальными машинами и локальной сетью + маршрутизатором + облаком безупречна, но я просто не знаю, как перелезть через забор - на более зеленую траву ... :)
Conf 1 - Мост KVM по умолчанию с NAT: я могу подключиться по ssh к хосту Debian и получить доступ к контейнерному порту docker, но есть ли настройка с прямым маршрутом?
Conf 2 - адаптер macvtap в режиме моста к локальной сети: я не могу пинговать IP-адрес локальной сети хоста с виртуальной машины, хотя оба подключены к одному и тому же маршрутизатору. Ответ от самой виртуальной машины - это Destination Host Unreachable
. Есть какие-нибудь мысли, почему?
Было бы лучше запустить демон docker на отдельной виртуальной машине, а не непосредственно на хосте Debian? Таким образом, и контейнер, и виртуальная машина могли получить доступ к мосту KVM по умолчанию. Но я подумал, что довольно странно запускать docker в виртуальной машине на хосте KVM.
Любое четкое руководство было бы оценено по достоинству!
Кстати, мост br-f9f3ccd64037
это пользовательский мост, который я создал с помощью docker для будущего взаимодействия между контейнерами. Он не используется.
Обновление:
Я только что понял, что с первой конфигурацией я могу просто подключиться к контейнеру docker по его IP-адресу (172.17.0.2) от гостей виртуальной машины.
Моя первоначальная настройка была второй конфигурацией, потому что я хотел использовать RDP для виртуальных машин, что проще, поскольку драйвер macvtap подключает виртуальные машины непосредственно к локальной сети, и SSH-соединение не требуется. Вот тогда-то я и не смог дотянуться до контейнера.