У меня Docker версии 1.13.1 в Windows. И следующая конфигурация для создания:

version: '2.1'
services:
  discovery:
    build: ../discovery
    ports:
     - 8761:8761

  gateway:
    build: ../gateway
    ports:
     - 8888:8888

Моя служба шлюза попыталась найти службу обнаружения до localhost:8761, но это не удалось.

Я пытался установить discovery:8761, но это тоже не удалось. Работает только с IP из свойства DOCKER_HOST. Я перенаправил порты 8761 из образа VB в localhost, и он доступен на localhost:8761 из окон.

Как правильно настроить мультисервисный docker-compose и доменные имена без жестко запрограммированных IP-адресов в сервисах?

0
sanitar4eg 5 Июл 2017 в 16:57
1
Ваш подход к использованию имени службы внутри контейнерной сети (discovery:8761) должен быть правильным. Не могли бы вы рассказать, как это происходит?
 – 
Dustin Martin
5 Июл 2017 в 17:13
1
Произошла ошибка: соединение отклонено (соединение отклонено). Но теперь я попробовал с discovery:8761 и командой docker-compose up --build, и все работает нормально. Только что пропустил --build. Спасибо!
 – 
sanitar4eg
5 Июл 2017 в 17:22
1
Рад, что вы смогли это исправить. Я предлагаю перейти на версию Compose 3.3 вместо 2.1. Он поставляется с последней версией докера 17.06CE, которая сейчас доступна и стабильна.
 – 
Mano Marks
6 Июл 2017 в 03:50

1 ответ

Лучший ответ

Несмотря на то, что вы исправили это, мои два цента: возможно, вам следует принудительно установить порядок запуска в docker-compose.yml, следующий: https://docs.docker.com/compose/compose-file/#depends_on

1
dgulabs 5 Июл 2017 в 17:55