2016-10-30 5 views
1

В настоящее время я использую docker-compose для настройки серии микросервисов, которые я хочу связать с общей службой регистрации ошибок (созданной вне компоновки).Как использовать external_links для подключения docker-compose к общей службе?

Я создаю errorHandling службы за пределами compose.

docker run -d --name errorHandler 

Тогда я бегу Compose (обобщенный):

version: '2' 
services: 
    my-service: 
    build: ../my-service 
    external_links: 
     - errorHandler 

Я использую имя хоста псевдоним («ErrorHandler») в моем приложении, но не могу показаться, чтобы получить их связными. Как проверить, действительно ли служба, даже обнаруженная в составе сети?

ответ

4

Вместо ссылок используйте общую докеревую сеть. Поместите контейнер «errorHandler» в сеть в Docker, используя что-то вроде docker network create errorNet и docker network connect errorNet errorHandler. Затем определите, что сеть в файле для создания сообщения «мой-сервис» с:

version: '2' 
networks: 
    errorNet: 
    external: true 

services: 
    my-service: 
    build: ../my-service 
    networks: 
    - errorNet 

Это использует внутренний DNS Docker для подключения контейнеров вместе.

+0

ah замечательный трюк. в качестве побочного примечания, под моим сервисом я должен был указать «- default». высоко ценят за помощь ... слишком долго провели это вчера. просто любопытно, внешние ссылки вообще не одобряются? Мне кажется, что я не думаю о причине, почему я никогда не пользовался бы поддержкой сетей. – Tkwon123

+1

Связывание контейнеров стало устаревшим решением после внедрения сетей докеров. Мне никогда не приходилось его использовать. – BMitch