Docker部署rabbitmq
1、 准備docker環境:
# yum -y install docker
# docker ps
@如果有輸出
CONTAINER ID IMAGE COMMAND CREATED PORTS
證明已經安裝完畢。
2、 部署外網環境
# docker search rabbitmq
letsxo/rabbitmq RabbitMQ with Management and MQTT plugins.
@選擇這一個,因為他又web管理和MQTT。
# docker pull letsxo/rabbitmq
# docker images
letsxo/rabbitmq latest 93a7eefb0865 2 weeks ago 38.6MB
@接下來,根據下載的鏡像創建rabbitmq容器
# docker run -d -p 5671:5671 -p 5672:5672 -p 15672:15672 -p 15671:15671 -p 25672:25672 -v /data/rabbitmq-data/:/var/rabbitmq/lib --name rabbitmq 93a7eefb0865
@ 93a7eefb0865 :是鏡像的ID,此處也可以寫鏡像的名字:如letsxo/rabbitmq
@查看已經運行的容器:
# docker ps
@可以看到容器已經正常運行,此時可以通過訪問本機的15672端口訪問web管理端:http://本機ip:15672
3、 部署內網機器
@首先需要下載,rabbitmq的鏡像,一是在網上直接下載(太慢了);二是直接找一台能上外網帶docker環境的機器,使用docker pull下載。
# docker search rabbitmq
# docker pull letsxo/rabbitmq
# docker images
letsxo/rabbitmq latest 93a7eefb0865 2 weeks ago 38.6MB
# docker save 93a7eefb0865 > rabbitmq.tar
@將rabbitmq.tar拷貝到內網服務器:
# scp –P port rabbitmq.tar user@ip:path
如果是默認的22端口,-P就不用了。
在內網服務器上將拷貝來的rabbitmq.tar文件導入為鏡像:
# docker load < rabbitmq.tar
@打標簽:
# docker tag 93a7eefb0865 rabbitmq:cuishuai
@創建並運行容器:
# docker run -d -p 5671:5671 -p 5672:5672 -p 15672:15672 -p 15671:15671 -p 25672:25672 -v /data/rabbitmq-data/:/var/rabbitmq/lib --name rabbitmq 93a7eefb0865
! 93a7eefb0865 :是鏡像的ID,此處也可以寫鏡像的名字:如letsxo/rabbitmq
4、 Web端配置rabbitmq:
@rabbitmq默認創建了guest/guest用戶,使用此用戶不安全。需要修改密碼,及創建新的用戶。
1)登陸后你如圖所示的步驟進行操作來添加新用戶:
2)修改密碼:
修改密碼和權限按1->2->3來完成;4是用來刪除用戶的。
3)創建vhost,按如圖1->2->3->4來完成:
將創建的vhost應用到用戶,在首頁的用戶名上單擊用戶名進入如圖所示的界面:
4)創建policy
注:
rabbitmq的數據庫名稱規則是,NODENAME@hostname,Docker每次從Docker image啟動容器的時候會自動生成hostname,這樣一來,你保存在主機上的數據庫就會沒用了,包括之前創建的用戶也會沒有了。所以在創建容器的時候必須指定--hostname=rabbitmqhostone,這樣docker環境啟動后rabbitmq就會一直讀取固定目錄中的數據了