Не работает кросс-контейнерная связь с этим докером - PullRequest
0 голосов
/ 31 октября 2019

Inmy проект, у меня есть три услуги

  1. redis

  2. service-1

  3. service-2

Вот файл docker-compose

version: '3'

services:

  redis:
    image: redis
    ports:
      - 6379:6379

  service-1:
    image: service-1-latest
    ports:
      - 7002:7002
    depends_on:
      - redis


  service-2:
    image: service-2-latest
    ports:
      - 7000:7000
    restart: on-failure:5

service-2, связывающийся с service-1, такой как http://service -1: 7002/ v1 / reg / registerservice

Но после этого я вижу в журналах следующее сообщение:

dial tcp: lookup service-1 on 127.0.0.11:53:такого хоста нет

Я попробовал несколько способов, следуя документации по переполнению стека и докеру, но связь между контейнерами не работала. Сначала я попробовал на MacO, а затем на Linux и не сделал. не работаетВ моем случае один контейнер (service-2) вызывает другие конечные точки отдыха (например, service-1).

Сведения об операционной системе : этап Linux 4.15.0-58-универсальный # 64-Ubuntu SMP Вт 6 августа 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux

Версия Docker : версия Docker 19.03.1, сборка 74b1e89

---------- Ссылка ---------------------------

Я следовал этомудокумент для выполнения вышеуказанного: https://docs.docker.com/compose/networking/

, в котором говорится следующее:

Например, предположим, что ваше приложение находится в каталоге с именем myapp, а ваш docker-compose.yml выглядит следующим образом:

version: "3"
services:
  web:
    build: .
    ports:
      - "8000:8000"
  db:
    image: postgres
    ports:
      - "8001:5432"

Когда вы запускаете docker-compose, происходит следующее:

Создается сеть с именем myapp_default. Контейнер создается с использованием веб-конфигурации. Он присоединяется к сети myapp_default под именем web. Контейнер создается с использованием конфигурации базы данных. Он присоединяется к сети myapp_default под именем db.

1 Ответ

0 голосов
/ 31 октября 2019

Попробуйте это https://stackoverflow.com/a/45011909/10354937

Мне помогло редактирование DNS-сервера в файле /etc/resolv.conf.

Измените существующий сервер имен на google nameserver, то есть с xxxx на 8.8.8.8

Прокомментируйте свой IP-адрес сервера имен и добавьте что-то вроде этого:

#nameserver x.x.x.x
nameserver 8.8.8.8  

должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...