一、准备工作

1.目录结构

2.开通端口

firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload

3.创建目录

mkdir -p /volume2/docker/rabbitmq/log
mkdir -p /volume2/docker/rabbitmq/data

4.分配权限(最重要的一步)

为所有目录包括子目录分配读写权限 没有写权限无法存储 会报错无法启动

chmod -R 777 /volume2/docker/rabbitmq

二、安装搭建

由于需要内置插件 这里我们使用自定义 Dockerfile 方式

1.Dockerfile

插件可在 RabbitMQ 官网获取

FROM rabbitmq:3.13.3-management

LABEL maintainer="Eternal Night"

ADD ./rabbitmq_delayed_message_exchange-3.13.0.ez /plugins

RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange

ENTRYPOINT ["rabbitmq-server"]

2.docker-compose 编排

version: '3'

services:
  rabbitmq:
    image: rabbitmq:3.13.3
    container_name: rabbitmq
    # 使用 Dockerfile 构建
    build:
      context: /volume2/docker/rabbitmq
    environment:
      # 控制台账号密码
      RABBITMQ_DEFAULT_USER: night
      RABBITMQ_DEFAULT_PASS: zhujunhua
    ports:
      - "15672:15672" # 管理界面端口
      - "5672:5672"   # api 端口
    volumes:
      - /volume2/docker/rabbitmq/log:/var/log/rabbitmq
      - /volume2/docker/rabbitmq/data:/var/lib/rabbitmq
    network_mode: "host"

3.执行安装命令

docker-compose up -d rabbitmq

4.进入控制台

5.创建新交换机查看延迟插件是否生效