У меня проблемы с пониманием Docker для Windows и работы сети. В VirtualBox с мостовым адаптером и виртуальной машиной Ubuntu все просто работало - я мог нормально пропинговать виртуальную машину с моего хоста (и наоборот).
- Как проверить связь с контейнером с любого устройства в моей сети?
- И как пинговать другие контейнеры, не работающие на том же хосте?
Мой план...
должно было иметь несколько компьютеров под управлением Windows (не виртуальных машин), на каждой из которых был запущен один контейнер Docker (для формирования кластера хранения), и эти контейнеры должны были взаимодействовать друг с другом (возможно, запускать с использованием сети overlay
, или для этого требуется swarm
?). Мне также нужно поговорить с этим извне, что является единственной частью, которую я смог заставить работать, используя параметр docker run -p
, чтобы открыть порты в нужном мне контейнере.
Чтобы немного проработать мой процесс мыслей, моя цель - создать хранилище значений ключей в стиле Amazon S3 (в частности, с использованием Riak KV), работающее на Linux. Поскольку для этого потребуется несколько компьютеров, на которых будет запущено программное обеспечение, мне показалось, что Docker может иметь такие преимущества, как простота установки и развертывания, а также среда для запуска программного обеспечения на основе Linux в Windows, к которому у меня в настоящее время есть легкий доступ.
Пара вещей, которые я тестировал ...
Если я запускаю два контейнера Ubuntu на одном хосте, используя мостовую сеть по умолчанию, они могут пинговать друг друга. ifconfig
перечисляет локальный адаптер и адаптер eth0 с IP-адресом 172.17 ... Из этого не похоже, что мост - это то, что я ищу, так как мне нужно несколько хостов.
Если я запускаю контейнер Ubuntu с --network host
, я получаю намного больше от ifconfig
, включая адаптеры br-xxxxxxxx и vethxxxxxx. Из документов,
добавляет контейнер в сетевой стек хостов
Это звучало полезно, но, возможно, я не понимаю. Я знаю, что Docker для Windows запускает MobyLinuxVM и использует адаптер и коммутатор Hyper-V, что означает хост? ПК с windows или эта виртуальная машина? При использовании --network host
я все еще не могу проверить связь с контейнером или рабочий стол из контейнера.
Другие мысли...
Кажется, что стандартное использование Docker НЕ основано на Windows, поэтому мне не удалось найти столько ссылок. Сильно ли отличается мой вариант использования от обычного использования Docker? Может ли кто-нибудь указать на то, чего мне здесь не хватает?
Информация об адаптерах Hyper-V выглядит так, будто мне нужно изменить настройку сетевого адаптера в дополнение к тому, как я запускаю контейнеры? Я думаю, мне трудно понять, где искать между окнами, адаптером / коммутатором Hyper-V, ubuntu и докером.