(1)RabbitMQ在Docker上安裝


1.簡介

在來學習RabbitMQ時候,我覺得很有必要先把它的環境先搭建起來,這樣后面的示例才能進行。因為之前自己手動在Linux服務器上搭建過Elasticsearch,當時踩過太多坑了,浪費太多時間在這事情上,后面發現在Docker上安裝部署方便快捷,不需要額外安裝Erlang,所以寫該篇文章先來介紹如何在Docker上部署RabbitMQ。

2. 安裝Docker Engine-Community

使用Docker倉庫進行安裝,在新主機上首次安裝Docker Engine-Community之前,需要設置Docker倉庫。之后,您可以從倉庫安裝和更新Docker。

2.1設置倉庫

安裝所需的軟件包。yum-utils提供了yum-config-manager,並且device mapper存儲驅動程序需要device-mapper-persistent-data和lvm2。

sudo yum install -y yum-utils \
                device-mapper-persistent-data \
                lvm2

or

sudo yum install -y yum-utils device-mapper-persistent-data lvm2


使用以下命令來設置穩定的倉庫(一般不建議使用官方源地址,因為訪問國外的站點比較慢,最好訪問國內的源地址,例如阿里雲):

$ sudo yum-config-manager \
      --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

or

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.2安裝Docker Engine-Community

安裝最新版本的Docker Engine-Community和containerd,或者轉到下一步安裝特定版本:

sudo yum install docker-ce docker-ce-cli containerd.io

2.3查看Docker版本

docker version


查看Docker版本時候,發覺Docker並沒有啟動,所以接下來要啟動Docker。

2.4啟動Docker

systemctl start docker

2.5通過運行hello-world映像來驗證是否正確安裝了Docker Engine-Community(當運行容器時,使用的鏡像如果在本地中不存在,就會自動從docker鏡像倉庫中下載,默認是從Docker Hub公共鏡像源下載)

docker run hello-world

2.6查看鏡像

docker images


由此可見,docker下載安裝成功!

3. Docker安裝RabbitMQ

可以自行進入docker hub鏡像倉庫地址(https://hub.docker.com)查看rabbitmq類型的鏡像。

3.1拉取rabbitmq鏡像

docker pull rabbitmq

 

3.2查看鏡像

拉取rabbitmq鏡像成功!

3.3啟動RabbitMQ Web界面

docker restart rabbitmq(REPOSITORY,容器名稱)
docker restart 76615d52df27(CONTAINER ID,容器ID)

設置rabbitmq用戶名和密碼並啟動主要有兩種方式:
●默認guest 用戶,密碼guest:

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management

●設置新用戶名和密碼:

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

-d:后台運行容器。
--name:指定容器名。
-p:指定服務運行的端口(5672:應用訪問端口;15672:控制台Web端口號)。
-v:映射目錄或文件。
--hostname:主機名(RabbitMQ的一個重要注意事項是它根據所謂的“節點名稱”存儲數據,默認為主機名)。
-e:指定環境變量(RABBITMQ_DEFAULT_VHOST:默認虛擬機名;RABBITMQ_DEFAULT_USER:默認的用戶名;RABBITMQ_DEFAULT_PASS:默認用戶名的密碼)。

●啟動rabbitmq_management腳本命令如下:

docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management


 注意:rabbitmq為鏡像名稱。

3.4開啟防火牆15672端口

firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload
--查看是否開通訪問權限
firewall-cmd --permanent --zone=public --query-port=15672/tcp

注:如果是阿里雲等服務器,則需要配置RabbitMQ安全組策略
登錄阿里雲->安全組規則->訪問規則->入方向->手動添加如下策略:

3.5查看正在運行容器

docker ps -a

3.6 rabbitmqctl用戶命令使用

當你使用rabbitmqctl用戶命令時有如下提示:

rabbitmqctl: command not found

則是因為rabbitmqctl沒有進行軟連接,需要進入到rabbitmqctl的sbin目錄下執行rabbitmqctl命令才有用。假設我要修改admin用戶密碼,需要找到rabbitmqctl的sbin目錄並切換才能執行命令,如果不清楚目錄在哪里,可以通過find命令查找:

find / -name "rabbitmqctl*"

3.6.1用戶相關命令

●查看用戶列表

rabbitmqctl list_users

●增加用戶

rabbitmqctl add_user username 'password'

●設置角色

rabbitmqctl set_user_tags username administrator

●修改用戶密碼

rabbitmqctl change_password username 'newpasswd'

●刪除用戶

rabbitmqctl delete_user username

●用戶賦權(使用戶user1具有vhost1這個virtual host中所有資源的配置、寫、讀權限以便管理其中的資源)

rabbitmqctl set_permissions -p vhost1 username '.*' '.*' '.*'

●查看權限

rabbitmqctl list_user_permissions username

●查看vhost1中權限

rabbitmqctl list_permissions -p vhost1

●清除權限

rabbitmqctl clear_permissions [-p VHostPath] username

3.6 Docker重啟RabbitMQ
●查看正在運行容器:

docker ps -a

●停止運行rabbitmq容器:

docker stop 9f1fb347efc2 (CONTAINER ID)

●刪除rabbitmq容器:

docker rm 9f1fb347efc2(CONTAINER ID)

●再執行3.3小節rabbitmq啟動命令

3.7安裝成功



參考文獻:
CentOS Docker安裝
Docker鏡像使用
Docker容器使用
Docker容器連接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM