Виртуальный адаптер Route / Bridge docker с виртуальным адаптером zerotier

У меня есть несколько серверов, работающих в контейнерах docker с docker-for-windows. Из-за того, как docker работает в Windows, все они помещаются внутрь Hyper-v vm, а затем контейнеры запускаются там. Поэтому для доступа к серверу, который привязан к localhost, я фактически использую IP-адрес виртуального адаптера Hyper-V.

Виртуальный адаптер Route / Bridge docker с виртуальным адаптером zerotier

Виртуальный адаптер Route / Bridge docker с виртуальным адаптером zerotier

Виртуальный адаптер Route / Bridge docker с виртуальным адаптером zerotier

Таким образом, я могу подключиться к своему серверу, используя 10.0.75.2:3579, когда я нахожусь на машине с Windows. Теперь я хочу, чтобы пользователь zerotier связал все мои контейнеры докеров с виртуальной локальной сетью, чтобы я мог получить доступ к своим контейнерам за пределами моей школьной сети. ZeroTier создает виртуальный адаптер под названием «нулевой виртуальный порт»: Виртуальный адаптер Route / Bridge docker с виртуальным адаптером zerotier Как это работает сейчас, так это то, что если я запускаю серверы на хост-машине с Windows (голый металл), я могу получить к ним доступ, используя свой нулевой IP-адрес. 10.147.17.221:port. НО это не подключает мои докеры, поскольку они подключены к другому адаптеру, а это означает, что я должен физически находиться на машине, чтобы делать какие-либо вещи, связанные с докерами. Как мне маршрутизировать или соединить адаптер нулевого уровня с адаптером докера Hyper-V, чтобы я мог получить доступ к своим контейнерам докеров извне с помощью IP-адреса нулевого уровня?

У меня нет окон, чтобы попробовать это сделать. Можете ли вы выбрать адаптер hyper-v и основной адаптер Wi-Fi и посмотреть, можно ли их соединить мостом?

Tarun Lalwani 19.04.2018 15:03

я уже пробовал это. Функция объединения окон не работает. Когда я делаю это, и адаптер Hyper-V, и адаптер нулевого уровня выходят из строя, жалуясь на `` кабель отсоединен ''.

Stephen Eckels 19.04.2018 23:09
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
6
2
1 862
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

У меня нет виртуальной машины Windows, чтобы попробовать это, но я бы использовал для этой цели сеть докеров. Например:

docker network create private

docker run --rm --name web--network private -p host_port_1:container_port_1 -p host_port_2:container_port_2 nginx:latest

docker run --rm --name db--network private -p host_port_3:container_port_1 -p host_port_4:container_port_2 postgres:latest

Дай мне знать, как дела.

сети докеров существуют внутри виртуальной машины и все еще находятся на другом адаптере. Так что это не работает. Я также пробовал типы l2bridge и transparent network, описанные здесь: 4sysops.com/archives/… и здесь: docs.microsoft.com/en-us/virtualization/windowscontainers/…, но они не поддерживаются в режиме контейнера linux. Таким образом, я могу создать только тип сети NAT по умолчанию. Я тоже могу создавать сети "хоста", но они привязаны к сети хоста виртуальной машины, ни одна из них не позволяет мне выйти из виртуальной машины.

Stephen Eckels 23.04.2018 03:24
Ответ принят как подходящий

Лучшее решение, которое я придумал, - не использовать нулевик. Я переключился на ngrok, который позволяет тривиально перенаправить на локальный ip

  • Создайте управляемый маршрут в своей сети ZeroTier следующим образом: [10.0.75.0/24] - [10.147.17.211]
  • Включите IP-переадресацию в Windows.

Это добавит статический маршрут ко всем узлам ZeroTier в вашей сети, чтобы они знали, что использовать нулевой IP-адрес вашего виртуального хоста в качестве маршрута к локальной сети докеров.

Другие вопросы по теме