【问题标题】:Trying to send messages between Docker containers using rabbitmq尝试使用 rabbitmq 在 Docker 容器之间发送消息
【发布时间】:2015-07-13 15:27:15
【问题描述】:

我目前正在使用 Java 客户端对 Docker 和 rabbitmq 进行试验,我正在尝试弄清楚如何在一个持有 Send 类的容器之间发送一条简单的消息,即“Hello world”,另一个容器运行rabbitmq 服务器,然后到第三个容器保存 Receive 类。任何人都可以帮助尝试进行设置,或者这实际上是不可能的吗? 到目前为止,我所做的是在发送和接收容器上运行安装了 Java 的 Ubuntu,并在内存中使用了 java 客户端,并且我通过链接命令将它们链接到服务器容器。在尝试运行任一类时,我得到了一些“无法连接”的错误,并且不知道如何解决它。如果有人可以提供帮助,那就太好了。谢谢!

*编辑

我正在尝试运行 rabbitmq 教程中的简单发送和接收类。对于发送容器,我使用的 Dockerfile 是

FROM ubuntu
RUN apt-get update
RUN apt-get install software-properties-common -y
RUN add-apt-repository ppa:webupd8team/java -y
RUN apt-get update
RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
RUN apt-get install oracle-java8-installer -y
RUN apt-get install oracle-java8-set-default
ADD Send.class /usr/
ADD rabbitmq-java-client-bin-3.5.3.zip /usr/

对于 Receive 容器也类似。 我正在使用

启动rabbitmq服务器容器
docker run --name server1 rabbitmq:3

然后用

启动发送容器
docker run -i -t -d -P --name send --link server1 sendtest

在发送容器中,我解压了 java 客户端,然后尝试运行发送类,但收到连接被拒绝错误。我知道我缺少一些东西,只是不确定它是什么。 谢谢

【问题讨论】:

  • 你在课堂上到底在做什么?你是怎么指rabbitMQ-server的?如果您将容器链接到服务器,则可以使用您在 --link containername:alias 中使用的别名来引用服务器的 ip
  • 你能展示你的 dockerfiles(或者至少是其中的一部分)吗?并显示您传递给 docker run 的参数?
  • 刚刚在帖子中添加了更多信息,谢谢

标签: java docker rabbitmq


【解决方案1】:

我已经使用 Docker Compose 很好地完成了这项工作。如果你想使用 Docker 运行,如果你在 rabbitMQ 运行中指定了端口,它也应该可以工作。像

docker run --expose 5672 -P --name server1 rabbitmq:3

【讨论】:

    猜你喜欢
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    相关资源
    最近更新 更多