Учтите, что приложение A представляет собой приложение, которое предоставляет форму кластеризации с разрешенным назначенным числом подчиненных устройств для объединения в этот кластер. Приложениям B, C и D необходимо будет присоединиться к этому кластеру для правильной работы. То, что я хотел бы сделать, это иметь приложение A внутри контейнера, имея приложения B, C и D в своих контейнерах. Экспозиция портов для этого не является вариантом. Это должно быть сделано без сетевых функций, так как нет модификации кода для приложений A, B, C и D. Я просто хотел бы иметь возможность доступа B, C и D к приложению A изнутри собственные контейнеры. Возможно, это даже невозможно, так как это точка Docker/контейнеры, однако изоляция, однако, учитывая, что докеры в настоящее время имеют опцию -net для совместного использования сетевого сетевого узла, я уверен, что это не может быть сложно реализовать?Совместное использование пространств имен в Docker
0
A
ответ
1
Если все контейнеры работают на одной машине, то --link
предназначен для такого типа прецедентов. Однако приложения должны иметь возможность использовать разные порты, настроенные с помощью переменных окружения.
В настоящее время на Докере GitHub работает очень много, обсуждая clusters, groups и networking, поэтому в будущем вы должны ожидать лучшей поддержки.
Вы можете рассмотреть «weave», который создает виртуальную оверлейную сеть, где все ваши контейнеры, даже в разных датацентрах, могут разговаривать друг с другом, как если бы они находились на одном и том же коммутаторе Ethernet. Обратите внимание, что я работаю над переплетением.
Если обнажая порты «не вариант», то как приложения обычно общаются друг с другом? Файловые трубы? –
Приложения взаимодействуют через сокеты. Я должен сказать это, разоблачение портов может быть вариантом, однако я не уверен, что это поможет в этом случае ... – matt32
Я думаю, что это эквивалентно http://stackoverflow.com/questions/24956322/can-docker- порт вперед к а-unix-файлу сокет-на-хост-контейнер – Andy