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)
相关推荐
AI风老师29 分钟前
4、docker compose
运维·docker·容器
ergdfhgerty2 小时前
飞牛NAS+Docker技术搭建个人博客站:公网远程部署实战指南
java·docker·容器
回归心灵2 小时前
RabbitMQ 断网自动重连失效
分布式·rabbitmq·断网重连
计算机毕设定制辅导-无忧学长2 小时前
RabbitMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 选型指南(二)
kafka·rabbitmq·rocketmq
zwjapple7 小时前
docker一键部署前后端项目
docker
ZPC821012 小时前
Docker 挂载卷并保存为容器
docker·容器
feifeigo12312 小时前
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
android·docker·容器
weixin_3077791319 小时前
RabbitMQ监控:关键技术、技巧与最佳实践
分布式·架构·rabbitmq
AA-代码批发V哥19 小时前
初识Docker:容器化技术的入门指南
docker·容器
无聊的烤苕皮1 天前
Docker运维-5.3 配置私有仓库(Harbor)
linux·运维·docker·容器·云计算