自己學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
所以,需要去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等主要程式語言。