Предоставление локальной сети docker

Это проблему я пытаюсь решить в течение некоторого времени. Я пробовал столько ресурсов, сколько мог, но ничего еще не сработало для меня. :/

вот что я пытаюсь решить:


Я хочу иметь возможность развертывать контейнеры Docker и получать к ним доступ с машины, которая находится в той же локальной сети. Это означает, что IP-адреса, которые Docker раздает контейнерам, должны быть доступны с клиентского компьютера в той же локальной сети, что и компьютер, на котором размещен Докер.

В идеале, люди просто должны добавить маршрут, который указывает на узел Docker в качестве шлюза для сети Docker, например:

client@lan$ sudo route add -net <docker-network>/<mask> gw <docker-host>

и бум, они могут получить доступ к контейнерам, просто введя свой IP. Конечно, этот маршрут также может быть настроен с маршрутизатора.

Я видел, что сетевые мосты помогают в этом, но я не мог заставить их работать таким образом.

Как заставить все это работать ?

7
задан iiPLD
30.04.2023 10:53 Количество просмотров материала 3195
Распечатать страницу

2 ответа

Если все, что вам нужно сделать, это убедиться, что приложения в контейнерах Docker доступны другим хостам в сети, проще всего установить сетевой режим Docker на host:

docker run --net=host image/toRun:1.0

это покажет порты в образе на IP-адресе хоста (убедитесь, что избежать конфликтов портов)

1
отвечен mtak 2023-05-01 18:41

добавление маршрута на клиентах для достижения ваших контейнеров через хост должен работать до тех пор, как вы включите пересылку IPv4 на хосте Docker с помощью:

sysctl -w net.ipv4.ip_forward=1

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

0
отвечен Martijn 2023-05-01 20:58

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх