Docker安装rabbitMq并安装延时插件

Docker安装rabbitMq并安装延时插件---转

插件的下载地址:https://www.rabbitmq.com/community-plugins.html

第一种方式:通过拷贝的方式进行安装

  1. 拉去镜像
 # 拉去镜像
 docker pull rabbitmq:management
 
 # 查看镜像的信息获取版本号
 docker inspect rabbitmq:management
  1. 启动镜像
docker run -d -p 5672:5672 -p 15672:15672 -p 15674:15674  -p 5671:5671  -p 15671:15671 --name rabbit -e RABBITMQ_DEFAULT_USER=zwdbj -e RABBITMQ_DEFAULT_PASS=zwdbj rabbitmq:management
  1. 执行docker exec -it /bin/bash命令进入到容器内部,rabbit是RabbitMQ容器ID,注意替换你自己的,然后我们可以看到plugins目录
docker exec -it rabbit /bin/bash
  1. 执行docker cp /mnt/rabbitmq_delayed_message_exchange-3.8.0.ez 3a:/plugins命令,将刚插件拷贝到容器内plugins目录下
#  docker cp /opt/software/rabbitmq_delayed_message_exchange-3.8.0.ez rabbit:/plugins
  1. 在容器内plugins目录下,查看插件是否上传成功ls -l|grep delay

  2. 启用插件

同样是在容器内plugins目录下执行rabbitmq-plugins enable rabbitmq_delayed_message_exchange,启用插件,如下图

#   进入容器启用插件
#   docker exec -it rabbit /bin/bash
#   rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  1. 到这里插件安装就完成了,接下来我们需要重启RabbitMQ容器。执行exit命令退出RabbitMQ容器内部,然后执行docker restart rabbit命令重启RabbitMQ容器
# docker restart rabbit

注意:在安装过程中拷贝文件时,我使用的是root账号,导致rabbitmq用户,没有权限读取文件,一直报错,

解决方案。修改改文件的是所有者和所有组,并赋予读写权限

#第一步:先进入容器
#第二部:修改所属
#   chown -R rabbitmq:rabbitmq rabbitmq_delayed_message_exchange-3.8.0.ez
#第三部:赋予读写权限
#   chmod 644 rabbitmq:rabbitmq rabbitmq_delayed_message_exchange-3.8.0.ez
#重写启动容器就OK了

第二种:使用dockerFile的方式进行安装

  1. 拉取和启动的方式和上边相同
  2. 创建Dockerfile开启rabbitmq插件,编辑 vim Dockerfile 添加如下内容,保存退出
FROM rabbitmq:management
MAINTAINER xiaoran
RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
  1. 通过Dockerfile生成镜像,注:这一步必须在启动容器之后执行
root@newings:/usr/local/src# docker build -f Dockerfile -t rabbitmq:management .
Sending build context to Docker daemon  270.8MB
Step 1/3 : FROM rabbitmq:management
 ---> fd30855d5f94
Step 2/3 : MAINTAINER xiaoran
 ---> Running in 43f00ce98c44
Removing intermediate container 43f00ce98c44
 ---> 901264bebf14
Step 3/3 : RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
 ---> Running in ca9936669ef7
The following plugins have been configured:
  rabbitmq_federation
  rabbitmq_federation_management
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_mqtt
  rabbitmq_stomp
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@ca9936669ef7...
Plugin configuration unchanged.
Removing intermediate container ca9936669ef7
 ---> e176bdac7eb8
Successfully built e176bdac7eb8
Successfully tagged rabbitmq:management
  1. 生成镜像后,通过ip:15672访问web界面,

posted on 2022-02-08 10:07  Colin88  阅读(721)  评论(0编辑  收藏  举报