如何在Docker Cloud上设置RabbitMQ集群?

我试图通过DockerCloudbuild立一个RabbitMQ集群 ,并丢失。

这里有很多教程,但我不明白Docker Cloud是如何创build集群的,因此我可以部署和连接两个正在运行的RabbitMQ服务?

我到目前为止:

  • 通过Docker Cloud(AWS)创build两个节点
  • 创build这两个节点的集群
  • 我在两个节点之一上部署了一个RabbitMQ容器

现在我不知道从哪里去。

我有问题:

  • 我如何部署两个RabbitMQ实例并将它们连接在一起?
  • 如果他们被链接,Docker Cloud如何pipe理它? 或者我必须通过pipe理GUI执行此操作?

任何指导或指引我在正确的方向是高度赞赏。

由于找不到关于如何在Docker Cloud上进行设置的指导,请在此解释:

  1. 在您的首选托pipe服务提供商(通过AWSselect)上通过Docker Cloud上的GUI创build两个(或更多)
  2. 通过Docker Cloud上的GUI创build一个节点集群,并select刚刚创build的节点
  3. 我在GitHub上使用了预先configuration的图像。

Dockerfile

 FROM rabbitmq:3.5.3-management MAINTAINER Dimitris Kapanidis dimitris.kapanidis@harbur.io COPY rabbitmq-cluster /usr/local/bin/ COPY pre-entrypoint.sh / EXPOSE 5672 15672 25672 4369 9100 9101 9102 9103 9104 9105 ENTRYPOINT ["/pre-entrypoint.sh"] CMD ["rabbitmq-cluster"] 

重要的部分(特别是对于Docker Cloud)是rabbitmq-cluster文件

 #!/bin/bash hostname=`hostname` RABBITMQ_NODENAME=${RABBITMQ_NODENAME:-rabbit} if [ -z "$CLUSTER_WITH" -o "$CLUSTER_WITH" = "$hostname" ]; then echo "Running as single server" rabbitmq-server else echo "Running as clustered server" /usr/sbin/rabbitmq-server -detached rabbitmqctl stop_app echo "Joining cluster $CLUSTER_WITH" rabbitmqctl join_cluster ${ENABLE_RAM:+--ram} $RABBITMQ_NODENAME@$CLUSTER_WITH rabbitmqctl start_app # Tail to keep the a foreground process active.. tail -f /var/log/rabbitmq/* fi 

在Docker Cloud中,创build一个新服务并searchharbur/rabbitmq-cluster 。 部署映像时,请select“在每个节点上部署”,并使用标签来标识您的群集节点。

在环境variables中,input:CLUSTER_WITH:rabbitmq-cluster-1(您的第一个实例的名称)ERLANG_COOKIE:abcdefg

rabbitmq-cluster脚本在每个节点上执行(rabbit-mq-cluster-1,rabbit-mq-cluster-2等),所以环境variables确保只join那些不是第一个的主机。 这可以确保您可以通过Docker Cloud进行扩展,并且新节点会自动与您的第一个节点进行集群。