当前位置: 首页 > 知识库问答 >
问题:

dotnetcore控制台应用程序:拒绝docker连接的Rabbitmq127.0.0.1:5672

史良哲
2023-03-14

从控制台应用程序的兔子连接:

 var factory = new ConnectionFactory()
                {
                    HostName = Environment.GetEnvironmentVariable("RabbitMq/Host"),
                    UserName = Environment.GetEnvironmentVariable("RabbitMq/Username"),
                    Password = Environment.GetEnvironmentVariable("RabbitMq/Password")
                };

                using (var connection = factory.CreateConnection()) // GETTING ERROR HERE
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue: "rss",
                                         durable: fa...

我得到了这个错误:

未处理的异常:RabbitMQ。客户例外情况。BrokerRunReachableException:指定的终结点都不可访问---

我的码头工人。yml文件:

version: '3'

services:
  message.api:
    image: message.api 
    build:
      context: ./message_api
      dockerfile: Dockerfile
    container_name: message.api
    environment:
      - "RabbitMq/Host=rabbit"
      - "RabbitMq/Username=guest"
      - "RabbitMq/Password=guest"
    depends_on:
      - rabbit

  rabbit:
    image: rabbitmq:3.7.2-management
    hostname: rabbit
    ports:
      - "15672:15672"
      - "5672:5672"

  rsscomparator:
    image: rsscomparator 
    build:
      context: ./rss_comparator_app
      dockerfile: Dockerfile
    container_name: rsscomparator
    environment:
      - "RabbitMq/Host=rabbit"
      - "RabbitMq/Username=guest"
      - "RabbitMq/Password=guest"
    depends_on:
      - rabbit

我正在使用dotnetcore控制台应用程序。当我在docker中使用此应用程序时,我遇到了一个错误。我可以通过网络浏览器访问rabbitmq(http://192.168.99.100:15672)但应用程序无法访问。

共有1个答案

贺飞星
2023-03-14

您正在尝试从容器应用程序连接到rabbitmq应用程序。您尝试使用127.0实现这一点。0.1:5672在控制台应用程序容器中。

但这是指向容器中的本地主机,而不是指向主机上的本地主机。

您正在使用相同的docker compose部署服务,而不指定网络设置,这意味着它们都部署在相同的docker网桥网络中。这将允许您让容器使用其容器或服务名称彼此通信

因此,尝试连接到rabbit:5672而不是127.0。0.1:5672。此名称将被转换为容器IP(172.xx.xx.xx),这意味着您将在容器之间创建私有连接。

 类似资料:
  • 我也搜索了一些谷歌解决方案,但它不工作输入图像描述在这里

  • 我正在使用另一个容器中的DockerizeSpring启动应用程序和redis。 我使用docker comush在同一个网络中运行两个容器,这是我的docker-compose.yml: 这是我的application.yml文件: 我也尝试了redis hots=redis,但结果是一样的。 我的问题是,我得到这个java.net.连接异常:拒绝连接(拒绝连接)”,即使容器在同一个网络中。 我

  • 我有一个Play 2 Web应用程序,我使用Docker将其部署到弹性豆茎。在这个Web应用程序中,我启动了一个Akka集群。启动过程包括将自动缩放组中的所有节点添加为种子节点(包括其本身)。在第一次部署到EB时,我指定部署到VPC(我只选择一个可用性区域)。 当我运行应用程序并启动群集时,我收到以下消息: 关联错误[akka.tcp://cluster@localhost: 2551]- 其中1

  • 2020-10-05 17:59:33,327:异常/[GET]Traceback(最近一次调用最后一次): File"/home/parshuram/. Virtualenvs/myVirtualenv/lib/python3.8/site-pack/flask/app.py",第2446行,wsgi_app响应=self.full_dispatch_request()File"/home/pa

  • 我知道在类似问题上已经发布了一些问题,但不幸的是,我仍然无法使以下命令正常工作: $sudo docker run hello world 无法在本地找到映像“hello world:latest”:docker:来自守护程序的错误响应:Gethttps://registry-1.docker.io/v2/: 拨打tcp 52.54.216.153:443:getsockopt:连接被拒绝。请参阅

  • 问题内容: 我正在尝试通过代码访问Redis服务器,但未连接。但是,如果我猛击redis容器,我可以访问redis-cli。 docker-compose.yml看起来像这样 Dockerfile_redis 当我尝试使用此代码连接到Redis服务器时 它发出此警告 有谁知道如何将Redis容器连接到PHP容器? 问题答案: 你的问题 Docker Compose 为不同的服务创建了单独的dock