2017-01-04 9 views
1

DockerCloudでRabbitMQクラスタをセットアップしようとしていますが、一種の迷子です。Docker CloudでRabbitMQクラスタを設定するには?

多くのチュートリアルがありますが、実行中の2つのRabbitMQサービスを展開して接続できるようにDocker Cloudがクラスタを作成する方法を理解できません。

私がこれまで持っている:

  • は、私は2つのいずれかにRabbitMQのコンテナを展開し
  • これら二つのノードのクラスタを作成しドッカークラウド(AWS)を介して二つのノードを作成します。ノード

ここからどこに行くのかわかりません。私が持っている

質問:

  • にはどうすればいいのRabbitMQの2つのインスタンスを展開しないと、それらを一緒にリンクしますか?
  • リンクされている場合、Docker Cloudはどのように管理していますか?それとも、管理者用GUIでこれを行う必要がありますか?

正しい方向への指導や指導は非常に感謝しています。

+0

ここで私はこの質問に答えるhttp://stackoverflow.com/a/41307591/1437693。あなたの場合は、フラグ 'RABBITMQ_USE_LONGNAME'を設定してください。 –

+0

[単純なドッキングRabbitMQクラスタを設定するにはどうすればよいですか?](http://stackoverflow.com/questions/41302117/how-do-i-set-up-a-simple-dockerized-rabbitmq-cluster) –

答えて

1

私はドッカークラウド上でそれを設定する方法についてのガイドを見つけることができなかったので、ここでの説明:

  1. は、お好みのホスティングプロバイダとドッカークラウド上のGUIを介して2つ(またはそれ以上)のノードを作成します。 (私はAWSを選択しました)
  2. DockerクラウドのGUIからノードクラスタを作成し、作成したノードだけを選択してください。
  3. GitHubに事前設定されたイメージを使用しました。

Dockerfile

FROM rabbitmq:3.5.3-management 
MAINTAINER Dimitris Kapanidis [email protected] 

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"] 

(特にドッカークラウドのための)重要な部分は、のRabbitMQクラスタファイルです:ドッカークラウドに

#!/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} [email protected]$CLUSTER_WITH 

    rabbitmqctl start_app 

    # Tail to keep the a foreground process active.. 
    tail -f /var/log/rabbitmq/* 
fi 

、新しいサービスを作成し、 harbur/rabbitmq-clusterを検索してください。イメージを展開するときは、「すべてのノードに展開」を選択し、タグを使用してクラスタノードを識別します。環境変数で

、次のように入力します CLUSTER_WITH:RabbitMQのクラスタ-1(あなたの最初のインスタンスの名前) ERLANG_COOKIE:

ABCDEFGのRabbitMQクラスタスクリプトがすべてのノード (ウサギ上で実行されます-mq-cluster-1、rabbit-mq-cluster-2など)ので、環境変数 は、最初のホストではないホストに参加するようにします。 これにより、Docker Cloudを使用して拡張でき、新しいノード が最初のノードで自動的にクラスタ化されます。

関連する問題