RabbitMq - Отказ в соединении при подключении внутри докера - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть следующее в моем docker-compose

rabbitmq:
   hostname : rabbit
   image: rabbitmq:3-management
   container_name: rabbitmq
   volumes:
     - rabbitmqdata:/var/lib/rabbitmq
   ports:
     - "15672:15672"
     - "5672:5672"
   environment:
     - RABBITMQ_DEFAULT_USER=rabbitmquser
     - RABBITMQ_DEFAULT_PASS=DEBmbwkSrzy9D1T9cJfa

Когда я перехожу на http://localhost:15672, я получаю управление очень хорошо снаружи контейнера докера.Также, когда я пытаюсь подключиться к док-контейнеру извне, используя localhost в качестве имени хоста, все работает как положено.

Проблема

Когда я пытаюсь подключиться к кроликуmq docker container в другом docker контейнере, я получаю следующие ошибки на основе переданного имени хоста.

Я предположил, поскольку я назвал экземпляр в rabbit с hostname : rabbit, что он будет фактически работать, используя имя хоста rabbit

rabbit = no device or such address
rabbitmq = no device or such address
localost = Connection refused 127.0.0.1:5672

docker inspect ..
Networks > IpAddress 
192.168.0.2 = The operation has timed out.

РЕДАКТИРОВАТЬ:

добавлена ​​дополнительная информация для диагностики проблемы, я запускаю rabbitmq и ядро ​​.net из Visual Studio с помощью отладки (используя docker иопции docker-compose) вот информация о сети для обоих контейнеров, они, похоже, находятся в одной сети.

RabbitMq

"Networks": {
            "dockercompose2774038413166585699_default": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": [
                    "ad88529531f6",
                    "rabbitmq"
                ],
                "NetworkID": "eb8be794b07df62dde4c1fe7fe59178cd218c540db65eae2851c55374a3d2aa3",
                "EndpointID": "e4e8c0f147ee417a8c77742ce42f839837cee83d05bfd14af346b9ee614135c2",
                "Gateway": "192.168.16.1",
                "IPAddress": "192.168.16.4",
                "IPPrefixLen": 20,
                "IPv6Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "MacAddress": "02:42:c0:a8:10:04",
                "DriverOpts": null
            }
        }

Приложение Web Api

"Networks": {
            "dockercompose2774038413166585699_default": {
                "IPAMConfig": null,
                "Links": null,
                "Aliases": [
                    "c977499feba4",
                    "reddit.api"
                ],
                "NetworkID": "eb8be794b07df62dde4c1fe7fe59178cd218c540db65eae2851c55374a3d2aa3",
                "EndpointID": "8dc76a20bb613402b0f3dc95d843d9605711f24543b842c384038b00e025dd4a",
                "Gateway": "192.168.16.1",
                "IPAddress": "192.168.16.3",
                "IPPrefixLen": 20,
                "IPv6Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "MacAddress": "02:42:c0:a8:10:03",
                "DriverOpts": null
            }
        }

Docker Compose

version: '3.4'

services:


  rabbitmq:
    hostname : rabbit
    image: rabbitmq:3-management
    container_name: rabbitmq
    volumes:
      - rabbitmqdata:/var/lib/rabbitmq
    ports:
      - "15672:15672"
      - "5672:5672"
    environment:
      - RABBITMQ_DEFAULT_USER=rabbitmquser
      - RABBITMQ_DEFAULT_PASS=DEBmbwkSrzy9D1T9cJfa

  redis:
    image: redis
    container_name: redis
    hostname: redis
    ports:
      - "6379:6379"

  logserver:
    image: datalust/seq:latest
    container_name: logserver
    ports:
      - "5020:80"
    environment:
      - ACCEPT_EULA=Y 


  reddit.api:
    image: ${DOCKER_REGISTRY-}redditapi
    build:
      context: .
      dockerfile: src/Services/SocialMedia/Reddit/Reddit.API/Dockerfile

  events.api:
    image: ${DOCKER_REGISTRY-}eventsapi
    build:
      context: .
      dockerfile: src/Services/Events/Events.API/Dockerfile


volumes:
  rabbitmqdata:
    external: true

Переопределить

version: '3.4'

services:
  reddit.api:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=44345
    ports:
      - "63346:80"
      - "44345:443"
    volumes:
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
  events.api:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=44399
    ports:
      - "65428:80"
      - "44399:443"
    volumes:
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
...