Проблема с контейнером Docker не может связаться - PullRequest
1 голос
/ 19 марта 2019

Я новичок в Docker, я пишу простой файл docker-compose.yml для запуска двух сервисных контейнеров: первый контейнер для приложения узла и еще один для проблемы redis с моим сервером приложений, который не может соединиться с контейнером redis. Вот мой код:

version: '3'
services:
    redis:
        image: redis
        ports:
            - "6379:6379"
        networks:
            - test
    app_server:
        image: app_server
        depends_on:
            - redis
        links:
           - redis
        ports:
            - "4004:4004"
        networks:
            - test
networks:
    test:

Выход: Ошибка: Ошибка повторного подключения к 127.0.0.1:6379 - подключение ECONNREFUSED

Ответы [ 2 ]

2 голосов
/ 19 марта 2019

Похоже, ваш webapp подключается к 127.0.0.1 / localhost вместо redis. Так что проблема не в докере, а в программировании вашего веб-приложения. Вы можете добавить переменную окружения в ваше веб-приложение (что-то вроде REDIS_HOST) и затем указать этот параметр в compose-файле. Это, конечно, требует, чтобы ваше веб-приложение считывало redis хост из переменной среды.

Пример назначения переменной среды в compose:

  webapp:
      image: my_web_app
      environment:
          - REDIS_HOST=redis

Опять же, это требует, чтобы ваше веб-приложение фактически использовало в своем коде переменную среды REDIS_HOST.

0 голосов
/ 19 марта 2019

127.0.0.1:6379 подключено к current container localhost, а не к контейнеру redis

С вашим файлом docker-composer. Теперь вы подключаетесь к Redis через имя контейнера Redis. Стало docker-compose автоматически создавать сеть Docker Bridge - что позволяет вам вызывать другие контейнеры через их имя ... docker inspect чтобы увидеть имя контейнера Redis - например, текущее имя контейнера Redis - redis_abc, поэтому вы можете подключиться к Redis через redis_abc:6379 Или, проще, просто добавьте container_name: redis_server в файл docker-compose для определенного имени контейнера. https://docs.docker.com/network/bridge/

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