наверное хватит
керизируем наше приложение для микроуслуг, и у меня возникли некоторые проблемы с обнаружением.
Приложение настроено следующим образом:
Когда служба запускается в «нелокальном» режиме, она использует 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 не должен быть испорчен - но я все еще довольно озадачен тем, что является правильным подходом здесь.
Спасибо!