Контейнеры, созданные с помощью VS2019 и Docker Compose, не могут взаимодействовать друг с другом - Windows 10 Enterprise - PullRequest
0 голосов
/ 10 марта 2020

У меня есть 3 контейнера с именами 'mysolution.ui', 'mysolution.webapi' и 'sql'.

Контейнер 'sql' был создан вручную с помощью командной строки. Контейнеры «mysolution.ui» и «mysolution.webapi» были созданы с помощью файла docker compose, созданного с использованием VS2019. Содержимое файла выглядит следующим образом:

version: '3.4'

services:
  mysolution.ui:
    image: ${DOCKER_REGISTRY-}mysolutionui
    build:
      context: .\mysolution.ui
      dockerfile: Dockerfile
    depends_on:
      - mysolution.webapi

  mysolution.webapi:
    image: ${DOCKER_REGISTRY-}mysolutionwebapi
    build:
      context: .\mysolution.webapi
      dockerfile: Dockerfile

Проект пользовательского интерфейса пытается вызвать webapi, но, глядя на консоль Chrome, я получаю сообщение об ошибке; "Не удалось загрузить ресурс: net :: ERR_NAME_NOT_RESOLVED". Если я пытаюсь получить доступ к тому же URL в браузере, он не может получить доступ к URL.

URL, к которому он пытается получить доступ; http://mysolution.webapi/api/v1/Test

С помощью команды docker inspect я получаю IP-адрес для контейнера webapi и заменяю имя контейнера на IP-адрес (например, http://172.23.80.1/api/v1/Test) и браузер правильно обращается к webapi.

Если я пытаюсь выполнить команду 'docker exe c -ti mysolution.ui ping mysolution.webapi', я получаю сообщение об ошибке "Ошибка: такого контейнера нет : mysolution.ui ". Аналогично, если я переворачиваю имена контейнеров, я получаю похожую ошибку; «Ошибка: Нет такого контейнера: mysolution.webapi».

Если я подставляю идентификатор контейнера для имени первого контейнера, например, «docker exe c -ti 0cd64b8a43a2 ping mysolution.webapi» контейнер проверен правильно Если я подставлю имя созданного вручную контейнера 'sql', это также будет корректно пропинговать, например, 'docker exe c -ti sql ping mysolution.webapi'.

Пожалуйста, кто угодно предложить какие-либо указатели на то, почему псевдонимы, определенные в docker compose, не работают?

...