Как связать и соединить Docker-контейнеры друг с другом, используя просто localhost? - PullRequest
0 голосов
/ 13 ноября 2018

Итак, у меня есть это в моем docker-compose.yml:

version: "3"
services:
  redis:
    image: redis
    ports:
      - "6379:6379"
  api:
    image: api
    ports:
      - "5555:5555"
    restart: always
    depends_on:
      - "redis"
    links:
      - "redis"

Но когда я пытаюсь получить доступ к localhost:6379 в контейнере API, не удается соединиться с ошибкой.

Iпробовал network_mode: host, но это решение только для Linux и не работает на Docker в Windows.

Какие альтернативы у меня есть в Windows?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

С Сетевые функции в Docker для Windows :

Известные ограничения, варианты использования и обходные пути

Я хочу подключиться из контейнера к службена хосте

Хост имеет изменяющийся IP-адрес (или ни одного, если у вас нет доступа к сети).Начиная с 18.03, мы рекомендуем подключаться к специальному DNS-имени host.docker.internal, которое разрешает внутренний IP-адрес, используемый хостом.Это для целей разработки и не будет работать в производственной среде за пределами Docker для Windows.

Шлюз также доступен как gateway.docker.internal.

0 голосов
/ 13 ноября 2018

в контейнере api, который вы используете, connect использует имя хоста redis вместо localhost.поэтому вы должны подключиться к redis:6379.

...