наверное хватит

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

Приложение настроено следующим образом:

Когда служба запускается в «нелокальном» режиме, она использует Consul в качестве реестра Discovery. Когда служба запускается в «локальном» режиме, она автоматически связывает адрес для каждой службы (например, tcp: // localhost: 61001, tcp: // localhost: 61002 и т. Д. Жестко закодированные адреса)

После докеризации приложения (пока только в локальном режиме) каждый сервис является контейнером (образы Docker, оркестрированные с помощью docker-compose. И с docker-machine, если это имеет значение) Но один сервис не может взаимодействовать с другим сервисом, поскольку они не являются на той же машине и tcp: // localhost: 61001, очевидно, не будет работать.

Использование docker-compose ссвязи и указание localhost в качестве псевдонима (service: localhost) не сработало. Есть ли способ для 2 контейнеров "разделить" один и тот же локальный хост?

Если нет, как лучше всего подойти к этому? Я думал об использовании конкретного имени хоста для каждой службы, а затем указал имя хоста в разделе ссылок docker-compose. (Но я сомневаюсь, что это элегантное решение) Или, может быть, использовать доксуризованную версию Consul и интегрироваться с ней?

Эта почта:Как разделить localhost между двумя различными контейнерами Docker? предоставил некоторую информацию о том, почему localhost не должен быть испорчен - но я все еще довольно озадачен тем, что является правильным подходом здесь.

Спасибо!

Ответы на вопрос(0)

Ваш ответ на вопрос