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)
相关推荐
遇见火星9 小时前
Docker Compose 完全入门:一键启动所有容器
运维·docker·容器·docker compose
云原生指北13 小时前
Apple Container Machine:把 Linux 搬进 Mac
macos·docker
隐层漫游者17 小时前
2026全网最细Docker容器化实战!从安装配置到Milvus向量数据库部署,一文掌握核心精髓(建议收藏)
docker
加加and减减19 小时前
Docker真实安装mysql8教程并优化配置
运维·mysql·docker·容器
半夜燃烧的香烟20 小时前
docker 安装minio nginx,配置nginx根据文根路由minio展示图片
java·nginx·docker
qiuziqiqi20 小时前
ocker-compose.yml 和Dockerfile 区别
运维·docker·容器
“码”力全开21 小时前
【架构深探】基于Docker与GB28181/RTSP的边缘计算AI视频管理平台:异构算力调度与源码交付实践
人工智能·docker·架构
qq7590353661 天前
2026 docker run启动的容器通过命令导出为docker-composer.yml文件
docker·eureka·composer
番茄去哪了1 天前
RabbitMQ
java·rabbitmq·java-rabbitmq
极客先躯1 天前
高级java每日一道面试题-2026年02月03日-实战篇[Docker]-如何备份和恢复 Docker Volume?
运维·docker·容器·自动化·备份·持久化·恢复