Комментарии 7
Этот конфиг используется для локальной разработки?
Вообще в докере можно обращаться по имени сервиса, оно же будет именем хоста.
Загвоздкой оказался один нюанс. Бэкенд должен был динамически создавать новый внутренний сервер, слушающий другой порт, а приложение на React должно иметь возможность обращаться к нему напрямую.
А что вы на самом деле пытаетесь сделать, какую проблему решить?
Перебор портов - не всегда хорошая идея, т.к. они могут быть недоступны, заблокированы "посередине" и т.д. Возможно, привязка к именам (хостам) на одном порту - более подходящее решение?
Совершенно непонятно зачем такое городить то? Внутри между собой контейнеры в одной сети могут обращаться друг к другу по имени + на любой порт.
network_mode: service:donor
нужен, если donor
делает с сетью что-нибудь особенное, например, настраивает маршруты или поднимает VPN. Что приятно, donor
'у для этого обычно нужно CAP_NET_ADMIN
, а остальные контейнеры могут пользоваться его плодами, не повышая привилегий. В общем network namespace также доступны анонимные UNIX domain sockets, а значит и SCM_RIGHTS
.
Интересное решение
Тот случай, когда объяснение зачем это нужно было, пожалуй интереснее самого решения.
Мастер-контейнер для Docker сети