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)
相关推荐
Wang's Blog25 分钟前
Java 项目部署之 Docker工具快速入门: 镜像命令从 pull 到 load 的完整实操
java·开发语言·docker
Wang's Blog33 分钟前
Java 项目部署之 Docker工具快速入门: Docker 数据卷命令与挂载实操
java·开发语言·docker
吴声子夜歌34 分钟前
Docker入门与实战——实战案例(编程开发)(一)
运维·docker·容器
死磕音视频2 小时前
自己搭一个“私人版 ChatGPT“:Open WebUI 一条命令部署 + 接入本地/云端模型保姆级教程
docker·开源·open webui·大模型部署
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: 学习路径与命令速查导引
java·学习·docker
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: Docker 镜像仓库
java·docker
JavaEdge.3 小时前
Docker Compose部署Dify
运维·docker·容器
Wang's Blog3 小时前
Java 项目部署之 Docker工具快速入门: DockerCompose 部署微服务集群
java·docker·微服务
xrlfreedom4 小时前
MCP 面试高频考点:给远程 Server 加日志、指标、追踪,OAuth 与 JSON Schema 怎么落地
docker·json schema·mcp·oauth 2.1