天天看點

Docker中安裝RabbitMQ

1、一點廢話(可直接跳轉至标題2)

通常在拉取鏡像之前,除了通過指令執行

docker search xxx

之外,我們還可以通過 Docker 鏡像倉庫查詢指定的鏡像。

如下是 rabbitmq 鏡像的搜尋結果:

Docker中安裝RabbitMQ

一般拉取下載下傳數 + stars 數相對比較高的,可防止被别人挂馬。

我們點開這個 stars 數最多的 rabbitmq,然後在标簽頁可以找到鏡像目前的一些版本資訊:

Docker中安裝RabbitMQ

截圖中的這兩個标簽版本,management 表示帶 web 管理界面的版本,也就是可視化操作的,是以鏡像相對大個10M左右,我們通常都是使用這個版本。

2、正文部分

2.1、拉取鏡像

悉知:本文基于

rabbitmq:3.8.9-management

docker pull rabbitmq:3.8.9-management
           

安裝過程如下:

Docker中安裝RabbitMQ

2.2、建立并啟動鏡像

執行如下指令:

docker run -d --hostname my-rabbitmq \
-p 15672:15672 -p 5672:5672 \
--name my-rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.8.9-management
           

執行截圖:

Docker中安裝RabbitMQ

關于參數:

  • -d:以守護程序方式在背景運作
  • --hostname:設定容器的主機名稱,僅本機可見。這種方式是寫到 /etc/hostname ,以及 /etc/hosts 檔案中,作為容器主機IP的别名,并且将顯示在容器的bash中。不過這種方式設定的主機名将不容易被容器之外可見。這将不會出現在 docker ps 或者 其他的容器的 /etc/hosts 檔案中。
  • --name:指定容器名
  • -p:指定服務運作的端口。
  • RABBITMQ_DEFAULT_USER:用于設定登陸控制台的使用者名,這裡我設定 admin
  • RABBITMQ_DEFAULT_PASS:用于設定登陸控制台的密碼,這裡我設定 admin容器啟動成功後,可以在浏覽器輸入位址:http://ip:15672/通路控制台

額外說一下 rabbitmq 這幾個端口的作用:

  • 4369:EPMD( Erlang Port Mapper Daemon)端口号,在 Erlang 叢集中相當于 dns 的作用
  • 5672:client 端通信端口
  • 15672:web管理界面端口

2.3、通路web管理界面

賬号密碼為上方指定的 user_pass:admin、admin

Docker中安裝RabbitMQ

2.4、建立賬戶

切換到 Admin 标簽,完成對使用者的增删改查,其中 Tags 表示角色,角色取值有:

  • administrator (超級管理者):可登陸管理控制台(啟用management plugin的情況下),可檢視所有的資訊,并且可以對使用者,政策(policy)進行操作。
  • monitoring(監控者):可登陸管理控制台(啟用management plugin的情況下),同時可以檢視rabbitmq節點的相關資訊(程序數,記憶體使用情況,磁盤使用情況等)
  • policymaker(政策制定者):可登陸管理控制台(啟用management plugin的情況下), 同時可以對policy進行管理。
  • management(普通管理者):僅可登陸管理控制台(啟用management plugin的情況下),無法看到節點資訊,也無法對政策進行管理。
  • none(其他):無法登陸管理控制台,通常就是普通的生産者和消費者。

如下是 Web 操作截圖界面:

Docker中安裝RabbitMQ

2.5、建立虛拟 host(niceyoo)

建立 host 可以通過 docker 進入容器内部通過指令方式建立,當然也可以直接在 web 管理界面新增更加的直覺。

Admin 标簽,右側 Virtual Hosts ,Add virtual host

Docker中安裝RabbitMQ

2.6、配置設定使用者Host權限

點選上方新增的 host 節點,進入該 host

Docker中安裝RabbitMQ

3、文章推薦

RabbitMQ六種隊列模式-簡單隊列

RabbitMQ六種隊列模式-工作隊列

RabbitMQ六種隊列模式-釋出訂閱

RabbitMQ六種隊列模式-路由模式

RabbitMQ六種隊列模式-主題模式

SpringBoot整合RabbitMQ

RabbitMQ消息幂等性問題