Docker 部署 RabbitMq 集羣
1.必要條件
安裝Docker服務(此處不詳細描述)
下載rabbitMq images (可以用國內的源進行下載會快很多)
docker pull daocloud.io/library/rabbitmq
2. 啓動master
docker run -itd --hostname rabbitmq-5672 --name rabbitmq-5672 -p 5672:5672 -p 15672:15672 \
-v /home/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' docker.io/rabbitmq
其中
–hostname 爲主機名稱
–name 爲docker的容器名稱
-p 爲端口號
-v爲掛載的目錄
-e 設置RABBITMQ_ERLANG_COOKIE,參數值必須相同
啓動後需要安裝 rabbitmq_management 否則無法訪問web管理(其他服務也需要enable rabbitmq_management)
docker exec -it rabbitmq-5672 bash
進入容器後執行命令
rabbitmqctl stop
rabbitmqctl reset
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl start_app
2.1 啓動cluster
cluster one
docker run -itd --hostname rabbitmq-5673 --name rabbitmq-5673 -p 5673:5672 -p 15673:15672 \
-v /home/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
--link rabbitmq-5672:rabbitmq-5672 docker.io/rabbitmq
–link 多個容器之間使用“–link”連接,此屬性不能少.rabbitmq-5672爲master的hostname
docker exec -it rabbitmq-5673 bash
進入容器後執行命令
rabbitmqctl stop
rabbitmqctl reset
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl join_cluster --ram rabbit@rabbitmq-5672
rabbitmqctl start_app
cluster two
docker run -itd --hostname rabbitmq-5674 --name rabbitmq-5674 -p 5674:5672 -p 15674:15672 \
-v /home/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
--link rabbitmq-5672:rabbitmq-5672 \
--link rabbitmq-5673:rabbitmq-5673 \
docker.io/rabbitmq
docker exec -it rabbitmq-5674 bash
進入容器後執行命令
rabbitmqctl stop
rabbitmqctl reset
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl join_cluster --ram rabbit@rabbitmq-5672
rabbitmqctl start_app
設置好完成以後 使用http訪問web
http://物理機器ip:15672 進行訪問,默認賬號爲guest/guest,也可設置密碼
docker run -itd --hostname rabbitmq-5672 --name rabbitmq-5672 -p 5672:5672 -p 15672:15672 \
-v /home/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie' \
-e RABBITMQ_DEFAULT_USER=user \
-e RABBITMQ_DEFAULT_PASS=password \
docker.io/rabbitmq