Intereting Posts
Как предотвратить ошибку `#! / Bin / bash: not found` при вызове сценария из Dockerfile Как создать изображения, готовые для развертывания с помощью docker-compose Ошибка пространства имен Ice Реестр докеров на EC2 ошибка kubeadm kubedns. не удалось получить доступ к внешней сети или другим контейнерам Не удалось создать изображение докеры, «должен быть пользователем root» Как запустить полный laravel на кубернетах? Контейнер данных в докере: данные не заполнены Как я могу сохранить свой RSA KEY на моей докерной машине? Как смонтировать существующий каталог .ssh пользователя в контейнер Docker? Как предоставить пользовательский аргумент и значение в запуске docker? Не удалось создать официальное изображение докеры asp.net Docker создает прокси-сервер NGNX и статические файлы может ли исполняемый скрипт приложения запускаться на хосте? В чем разница между совместным использованием файла docker на git и совместным использованием контейнера докеров?

Подключить контейнер Windows к контейнеру Linux, запущенному на том же хостеле Docker

Первоначально я спросил на ServerFault, так как я думаю, что это сетевой вопрос, но мне сказали переместить его здесь: https://serverfault.com/questions/844480/connect-windows-container-to-linux-container-running-on-same- докер-хост

У меня есть RabbitMQ, работающий в контейнере Linux, и я хочу подключиться к нему из контейнера Windows, оба контейнера работают на том же хосте, ПК с Windows 10. Я запускаю RabbitMQ следующим образом:

docker run -p 8080:15672 -p 5672:5672 -d --hostname my-rabbit --name some-rabbit rabbitmq:3-management 

Я могу просмотреть приложение для управления веб-сайтом RabbitMQ с главного компьютера здесь: http: // localhost: 8080 / # /

Я переключаюсь в режим контейнера Windows (используя маленький значок кита) и запускаю свой контейнер Windows следующим образом:

 docker run --name "whatever" -d "whatever" 

В этот момент я могу подключиться к RabbitMQ, используя IP-адрес шлюза по умолчанию, назначенный контейнеру Windows. Строка подключения выглядит так:

 amqp://guest:guest@172.27.192.1:5672/ 

Хорошо работает, но я предпочитаю использовать имена хостов, а также не туннелировать хост, если я могу его избежать (мне пришлось добавить исключение брандмауэра, чтобы сделать эту работу). Для разговора между различными контейнерами Windows я могу использовать имена хостов, если я запускаю каждый контейнер с уникальным значением -hostname, но, похоже, он не работает в контейнерах Windows и Linux. Я попытался добавить новую сеть в свои контейнеры Linux с той же подсети, что и контейнеры Windows, но это не помогло. Я немного читал о роях и других более продвинутых / новых вариантах, но в настоящее время я сосредоточен на всех своих контейнерах, работающих на одном хосте (это для усилий по обеспечению качества, а не для производства). Я хочу сделать это как можно проще для SDET и других, чтобы вытащить несколько контейнеров, запустить пару BAT-файлов или сценариев PowerShell и все хорошо говорить – без изменения IP-адресов в файлах конфигурации или беспокоиться о конфликтующих сетевых настройках. В значительной степени то, что я могу легко сделать, если я использую только контейнеры Linux или использую только контейнеры Windows, но мне нужно использовать оба.