1. 程式人生 > >自己學Docker:16.Docker使用實戰--部署帶Web管理工具的RabbitMQ

自己學Docker:16.Docker使用實戰--部署帶Web管理工具的RabbitMQ

RabbitMQ是一個在AMQP基礎上完成的,可複用的企業訊息系統。
因為RabbitMQ由Erlang實現,本機部署的話還要安裝Erlang的開發環境,成本難免高些。然而,藉助Docker的話,環境部署便會非常便捷。這次來使用docker快速搭建帶web管理功能的RabbitMQ的環境。

查詢映象

通過dockerhub搜尋,可以找到官方的RabbitMQ映象
在網頁的tag標籤頁下會列出所有可用的tag。
當我們使用命令:

sudo docker pull rabbitmq

預設使用的RabbitMQ最新的新映象。
目前最新的是3.6,通過檢視他的rabbitmq/3.6/debian/Dockerfile

生成檔案,可以發現並沒有我們需要的rabbitmq_management。
所以,需要去tag查詢下,帶rabbitmq_management功能的tag是什麼。通過查詢,使用的tag是management,或者版本號-3.6-management。
這裡寫圖片描述

這樣在使用映象時,就可以使用針對的版本了。

sudo docker pull rabbitmq:management

建立映象

建立容器使用如下命令:

sudo docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672
-p 15671:15671 -p 15672:15672 rabbitmq:management

命令很簡單:run建立容器,-d後臺執行,–name命名容器為rabbitmq,-p將容器內埠對映到本機。
至於為什麼要對映這些埠,可以通過檢視rabbitmq:management的Dockerfile檔案找到原因。
首先,rabbitmq:management的Dockerfile最後指出:

EXPOSE 15671 15672

所以,web管理服務最終使用容器內的這兩個埠。
其次,rabbitmq:management的Dockerfile開始的時候指明:

FROM rabbitmq:3.6

所以rabbitmq:management的Dockerfile是基於rabbitmq映象建立的,rabbitmq的Dockerfile檔案最後定義了:

EXPOSE 4369 5671 5672 25672

所以,容器使用的所有埠就明確了。

成功建立容器後,就可以訪問web 管理端了 http://127.0.0.1:15672,預設建立了一個 guest 使用者,密碼也是 guest。
這裡寫圖片描述

最後,使用Docker搭建RabbitMQ環境,就是這麼簡單,至於RabbitMQ相關的東西,還是很多的,僅作簡介,RabbitMQ是實現高階訊息佇列協議(AMQP)的開源訊息中介軟體,建立在用於叢集和故障轉移的開放式平臺框架上。 支援Python,Java,Ruby,PHP,C#,JavaScript,Go,Elixir,Objective-C,Swift等主要程式語言。