docker-compose部署单机rabbitmq以及安装延迟插件

RabbitMQ默认不带延迟队列插件,可以到官网去下载指定版本的插件,并手动安装到RabbitMQ环境中,在这里我使用的RabbitMQ版本是:rabbitmq:3.8-management
延迟队列插件版本是:rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez

docker-compose脚本

version: "3"
services:
    rabbitmq:   
        container_name: myrabbit
        ports:
            - 15672:15672
            - 5672:5672
        restart: always
        volumes:
            - /etc/localtime:/etc/localtime
            - /home/mycontainers/myrabbit/rabbitmq:/var/lib/rabbitmq
        network_mode: mynetwork
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=123456
        image: myrabbitmq:3.8-management

启动容器

docker-compose -f docker-compose.yml up -d

然后我们将下载到的插件拷贝到rabbitmq容器的/plugins目录下

docker cp rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez myrabbit:/plugins

进入容器内,启动我们刚刚添加的插件

docker exec -it myrabbit bash

rabbitmq-plugins enable rabbitmq_delayed_message_exchange

查看插件是否有安装成功

#在容器内执行:
rabbitmq-plugins list
#在宿主机中执行这个:
docker exec myrabbit rabbitmq-plugins list
#能看到我们新添加的插件就说明成功了

优化搭建步骤
上面的步骤有些麻烦,当我们需要频繁的搭建RabbitMQ环境的时候就不方便了,所以我们可以优化一下,做一些准备工作,让后续的容器搭建变得便利。
目的
一键创建并启动RabbitMQ容器,并且附带延迟队列插件
思路
在rabbitmq原有镜像的基础上,制作新镜像,在容器启动之后自行启用插件
步骤

#创建镜像文件夹:
mkdir image
cd image
#编写Dockerfile文件:
FROM rabbitmq:3.8-management
COPY rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez /plugins
RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange
上面的内容是依赖于rabbitmq:3.8-management镜像,并且将当前目录下的插件文件拷贝到/plugins中,然后执行插件启用命令
此时image文件夹的目录结构是这样的:
- image
    Dockerfile
    rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez
记得把插件准备好
制作镜像:下面命令的. 不能省略
docker build -t myrabbitmq:3.8-management .
查看镜像:
docker images

修改原来的docker-compose脚本,修改镜像为:

version: "3"
services:
    rabbitmq:   
        container_name: myrabbit
        ports:
            - 15672:15672
            - 5672:5672
        restart: always
        volumes:
            - /etc/localtime:/etc/localtime
            - /home/mycontainers/myrabbit/rabbitmq:/var/lib/rabbitmq
        network_mode: mynetwork
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=123456
        image: myrabbitmq:3.8-management # 只改了这里,其他都是一样的

重新启动即可,由此,我们后面每次搭建新的RabbitMQ环境都不用再手动安装插件了。

根据提供的引用内容,使用docker-compose部署RabbitMQ的步骤如下: 1. 首先,编辑`docker-compose.yaml`文件,指定RabbitMQ的配置信息和挂载目录。例如,设置RabbitMQ版本为`3.10.2-management`,容器名称为`rabbitmq`,并挂载`./data`目录到容器的`/var/lib/rabbitmq`目录,挂载`./log`目录到容器的`/var/log/rabbitmq`目录,挂载`./localtime`目录到容器的`/etc/localtime`目录。同时,将主机的5672端口映射到容器的5672端口,将主机的15672端口映射到容器的15672端口,设置时区为`Asia/Shanghai`,默认用户名为`rabbit`,默认密码为`123456`。123 #### 引用[.reference_title] - *1* [docker-compose 部署RabbitMq](https://blog.csdn.net/a1394916730/article/details/126058114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [docker-compose部署rabbitmq集群](https://blog.csdn.net/p393975269/article/details/129830252)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [手把手教你使用docker-compose搭建RabbitMQ集群](https://blog.csdn.net/qq_41865652/article/details/123339368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值