我已经能够设置容器化的RabbitMQ服务器,并使用基本的.NET核心客户端进入它,并使用http://localhost:15672/上的管理门户检查消息的发送和接收工作。
但当我也容器我的发送者/接收者.NET核心客户端时,我真的很沮丧,因为我无法建立连接。我已经设置了一个显式的“see网络”,因此下面的docker-compose部署中的所有容器都应该可以看到彼此。

这是我在尝试连接的发送者中得到的错误:

我的SendRabbit .NET核心应用如下所示。这段代码是在我本地的Windows10开发机器上运行的,主机是“localhost”,而RabbitMQ服务器作为一个容器运行。但当我将其更改为linux docker项目,并将主机设置为"rabbitmq",以与docker组合中的服务名称相对应时。现在,我只是在我的Sender容器中得到了终结点连接错误异常。

我还在Google Cloud Linux虚拟机上使用相同的docker-compose尝试了相同的RabbitMQ服务器和Sender Image,并得到了相同的错误。所以我不认为这是Windows 10 docker托管VM环境的问题。
我以为docker会开发和部署微服务,但事实证明,建立基本的RabbitMQ连接是一件很痛苦的事情。
我认为也许rabbitmq服务器没有启动并运行,所以可能雄心勃勃地想要放入相同的docker-compose。但是几分钟后,我检查了一下运行我的SendRabbit容器$docker --network some network sendrabbit。但我仍然收到相同的连接错误
发布于 2020-08-18 01:45:35
docker网络*网络!
当我检查实际的docker网络时,我有:
桥
主机
船舶网络
rabbitship_shipnetwork
docker compose实际上在每次启动时都会创建“新”网络: rabbitship_shipnetwork,并将rabbimq服务器放在该网络上。netwrok是通过附加目录名称来命名的,名称在compsos yaml中。所以我在我的发送者中使用了错误的网络。所以我应该一直在用
$docker运行--网络rabbitship_shipnetwork发送兔
这可以很好地工作,并在rabbitmq服务器中创建消息。
所以我不认为docker-compose实际上对创建网络有很大的帮助,因为它对运行它的目录名称很敏感!我不太可能构建一个应用程序.docker文件,并从一个目录部署所有应用程序,特别是当rabbitmq必须单独启动时,在发送者和接收者可以使用它之前。
docker-compose 0
https://stackoverflow.com/questions/63452916
复制相似问题