Связь докер-контейнера с хостом в сети - PullRequest
0 голосов
/ 06 февраля 2019

Можно ли отправить сообщение с Socket из док-контейнера в сеть хоста, который его развертывает?Я имею в виду ...

У меня есть маршрутизатор с двумя подключенными хостами.Один из них развертывает Docker-контейнер с изображением, которое использует Socket в Python для отправки многоадресных сообщений UDP.Другой хост в сети выполняет программу, которая прослушивает этот многоадресный адрес для получения UDP-сообщений (но он не запускается в контейнере Docker).

Я пытаюсь запустить контейнер с помощью следующей команды:

docker run --name send-udp-container -p 192.168.0.100:5007:5007/udp udp-image

Я пытаюсь добиться этого с помощью сопоставления порта 5007 хоста с портом 5007 с контейнером.Итак, когда контейнер отправляет UDP-сообщение на этот порт, оно транслируется через 192.168.0.100 IP-адрес (это интерфейс, который я хочу использовать для связи с другим хостом).

Я знаю, что это может бытьисправлено использование этой команды для общего доступа к сети:

docker run --name send-udp-container --network host udp-image

Но я бы предпочел избежать совместного использования сети.Есть идеи?

1 Ответ

0 голосов
/ 06 февраля 2019

Не проверено:

# create a network and set the gateway 
docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 mynetwork

docker run --net=mynetwork --name send-udp-container udp-image

Теперь изнутри контейнера вы сможете достичь 192.168.0.100

...