Docker安装rabbitMq并安装延时插件
Docker安装rabbitMq并安装延时插件---转
插件的下载地址:https://www.rabbitmq.com/community-plugins.html
第一种方式:通过拷贝的方式进行安装
- 拉去镜像
# 拉去镜像
docker pull rabbitmq:management
# 查看镜像的信息获取版本号
docker inspect rabbitmq:management
- 启动镜像
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
- 执行
docker exec -it /bin/bash
命令进入到容器内部,rabbit
是RabbitMQ容器ID,注意替换你自己的,然后我们可以看到plugins
目录
docker exec -it rabbit /bin/bash
- 执行
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
-
在容器内
plugins
目录下,查看插件是否上传成功ls -l|grep delay
-
启用插件
同样是在容器内plugins目录下执行rabbitmq-plugins enable rabbitmq_delayed_message_exchange,启用插件,如下图
# 进入容器启用插件
# docker exec -it rabbit /bin/bash
# rabbitmq-plugins enable rabbitmq_delayed_message_exchange
- 到这里插件安装就完成了,接下来我们需要重启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的方式进行安装
- 拉取和启动的方式和上边相同
- 创建Dockerfile开启rabbitmq插件,编辑 vim Dockerfile 添加如下内容,保存退出
FROM rabbitmq:management
MAINTAINER xiaoran
RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
- 通过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
- 生成镜像后,通过ip:15672访问web界面,