Docker 安装 RabbitMQ

以下是在Docker中安装RabbitMQ并实现配置、数据、日志文件映射的完整步骤。


步骤 1:创建本地目录结构

bash 复制代码
# 创建配置、数据、日志目录
mkdir -p /root/docker/rabbitmq/{conf,data,logs}

# 目录结构说明:
# - conf: 存放自定义配置文件
# - data: 持久化存储队列和消息
# - logs: 存储容器日志

步骤 2:拉取镜像

bash 复制代码
docker pull rabbitmq:4.0-management

步骤 3:创建配置文件

创建 /root/docker/rabbitmq/conf/rabbitmq.conf(基础配置示例):

ini 复制代码
# 允许guest用户远程访问(生产环境慎用)
loopback_users.guest = false

# 监听端口配置
listeners.tcp.default = 5672
management.tcp.port = 15672

# 日志配置(路径需与映射目录一致)
log.dir = /var/log/rabbitmq
log.file = rabbitmq.log
log.file.rotation.count = 5
log.file.rotation.size = 10485760  # 10MB

步骤 4:运行Docker容器

bash 复制代码
docker run -d \
  --name rabbitmq \
  -p 5672:5672 \
  -p 15672:15672 \
  -v  /root/docker/rabbitmq/conf:/etc/rabbitmq \
  -v  /root/docker/rabbitmq/data:/var/lib/rabbitmq \
  -v  /root/docker/rabbitmq/logs:/var/log/rabbitmq \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=123456 \
  --restart=unless-stopped \
  rabbitmq:4.0-management

步骤 5:验证与使用

  1. 检查容器状态:

    bash 复制代码
    docker ps | grep rabbitmq
  2. 访问管理界面:

    • 浏览器打开 http://localhost:15672
    • 使用账号 admin 和密码 password 登录
  3. 查看持久化文件:

    bash 复制代码
    # 检查数据文件
    ls /root/docker/rabbitmq/data
    
    # 查看日志文件
    ls /root/docker/rabbitmq/logs
    tail -f /root/docker/rabbitmq/logs/rabbitmq.log

关键配置说明

配置项 作用 必要性
-p 5672:5672 AMQP协议端口 必选
-p 15672:15672 管理界面端口 必选
-v /root/docker/rabbitmq/conf:/etc/rabbitmq 映射自定义配置文件(如 rabbitmq.conf) 可选
-v /root/docker/rabbitmq/data:/var/lib/rabbitmq 持久化消息队列数据 必选
-v/root/docker/rabbitmq/logs:/var/log/rabbitmq 持久化日志文件 可选
-e RABBITMQ_DEFAULT_USER=admin 设置管理员用户名 按需
-e RABBITMQ_DEFAULT_PASS=123456 设置管理员密码 按需
loopback_users.guest = false 允许guest用户远程访问 按需

权限问题修复(重要!)

RabbitMQ容器默认以用户 rabbitmq(UID 100)运行,需确保宿主机目录可写:

bash 复制代码
# 一键修复权限(开发环境适用)
sudo chown -R 100:101 /root/docker/rabbitmq/data /root/docker/rabbitmq/logs

# 或更安全的精细化控制:
sudo chmod -R 777 /root/docker/rabbitmq/{data,logs,conf}

安装延迟队列插件

bash 复制代码
## 下载插件
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v4.0.7/rabbitmq_delayed_message_exchange-v4.0.7.ez
# 如果提示 SSL 验证问题,可跳过验证
wget --no-check-certificate https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v4.0.7/rabbitmq_delayed_message_exchange-v4.0.7.ez
## 将插件复制到rabbitmq容器中(容器正常运行中)
docker cp rabbitmq_delayed_message_exchange-v4.0.7.ez rabbitmq:/opt/rabbitmq/plugins/
## 进入容器启动插件
# 进入容器
docker exec -it rabbitmq /bin/bash

# 在容器内执行
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

# 退出并重启容器
exit
docker restart rabbitmq
## 验证插件是否已启动
docker exec rabbitmq rabbitmq-plugins list

完整目录结构示例

复制代码
rabbitmq/
├── conf/
│   └── rabbitmq.conf       # 自定义配置文件
├── data/                   # 持久化数据(队列、消息)
└── logs/                   # 日志文件(rabbitmq.log)
相关推荐
方便面不加香菜14 分钟前
Docker Image-- 镜像命令详解与使用示例
运维·docker·容器
Star(up up up)15 分钟前
Docker系列---Dockerfile镜像文件
人工智能·经验分享·学习·程序人生·docker·容器·github
-星空下无敌25 分钟前
Windows Docker K8s 安装部署Naocs ,SpringBoot 3.x 4.x 整合Naocs 版本兼容 配置中心、服务注册与发现
windows·docker·nacos·kubernetes·springboot·alibaba
芥子沫34 分钟前
从零开始用 Docker 部署 Hoppscotch:自建 API 调试平台的完整教程
docker·接口测试·api开发·api管理
yujunlong391935 分钟前
[特殊字符] Serverpod 4.1.0 全栈项目开发与 Docker 部署规范文档
flutter·docker·serverpod
时间售卖铺2 小时前
Docker私有仓库搭建与实战指南
运维·docker·云原生·容器
DarkAthena2 小时前
【GaussDB】把GaussDB开发者版本做成88MB的docker镜像
docker·gaussdb
月夏4 小时前
一个汉字存成了 6 个字节:我用 HEX 揪出 MySQL 双重编码
mysql·docker·全栈
后台模板学习4 小时前
Kafka 与 RabbitMQ 在用户认证与权限管理场景
kafka·rabbitmq·linq
jiecy5 小时前
在 ARM 的 UOS 系统里布署 WebDav
arm开发·docker·debian