【发布时间】: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 的参数?
-
刚刚在帖子中添加了更多信息,谢谢