全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-22 8 分钟 ✍️ juanwangdev

Docker 快速部署

Docker 是部署 RabbitMQ 最快捷的方式,无需手动安装 Erlang,镜像内置匹配的运行环境。

启动基础容器

Bash
docker run -d \
  --name rabbitmq \
  -p 5672:5672 \
  -p 15672:15672 \
  rabbitmq:3.13-management

端口说明:

  • 5672:AMQP 协议端口,Java 客户端连接使用
  • 15672:管理界面端口,浏览器访问 http://localhost:15672

带持久化与自定义密码

Bash
docker run -d \
  --name rabbitmq \
  -p 5672:5672 \
  -p 15672:15672 \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=secret123 \
  -v rabbitmq_data:/var/lib/rabbitmq \
  rabbitmq:3.13-management

环境变量:

变量说明
RABBITMQ_DEFAULT_USER默认用户名
RABBITMQ_DEFAULT_PASS默认密码

数据卷:rabbitmq_data 持久化队列与消息数据,容器重启不丢失。

启用插件

默认 management 插件已启用。如需启用其他插件:

Bash
# 进入容器
docker exec -it rabbitmq bash

# 启用 Shovel 插件(消息转发)
rabbitmq-plugins enable rabbitmq_shovel

# 启用 Shovel Management(Web界面管理Shovel)
rabbitmq-plugins enable rabbitmq_shovel_management

# 查看已启用插件
rabbitmq-plugins list

验证部署

方法一:Docker 健康检查

Bash
docker ps | grep rabbitmq

方法二:管理界面 浏览器访问 http://localhost:15672,使用 admin/secret123 登录。

方法三:Java 客户端连接

XML
<dependency>
    <groupId>com.rabbitmq</groupId>
    <artifactId>amqp-client</artifactId>
    <version>5.20.0</version>
</dependency>
Java
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class DockerRabbitMQTest {
    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        factory.setPort(5672);
        factory.setUsername("admin");
        factory.setPassword("secret123");

        try (Connection connection = factory.newConnection();
             Channel channel = connection.createChannel()) {
            channel.queueDeclare("docker_test", false, false, false, null);
            String message = "Hello from Docker RabbitMQ!";
            channel.basicPublish("", "docker_test", null, message.getBytes("UTF-8"));
            System.out.println("消息发送成功,Docker 部署验证通过");
        }
    }
}

docker-compose 部署

YAML
version: '3.8'
services:
  rabbitmq:
    image: rabbitmq:3.13-management
    container_name: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: secret123
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq
    restart: unless-stopped

volumes:
  rabbitmq_data:

启动命令:

Bash
docker-compose up -d

注意事项

rabbitmq:3.13 是纯服务器镜像,无管理界面;rabbitmq:3.13-management 包含管理界面。

默认用户名和密码为 guest/guest,但仅限 localhost 连接。远程连接需创建新用户。

数据卷持久化仅保存队列和消息定义,不保存未确认消息,重启后未消费消息需重新发送。

要点总结

  • Docker 部署免去 Erlang 版本兼容问题,镜像内置匹配环境
  • 端口 5672 用于 AMQP 连接,15672 用于管理界面
  • 通过环境变量 RABBITMQ_DEFAULT_USER/PASS 设置自定义密码
  • 数据卷持久化保证容器重启后配置与消息不丢失
  • Java 客户端连接时需使用自定义用户名密码(guest 仅限 localhost)

📝 发现内容有误?点击此处直接编辑

← 上一篇 生产者与消费者模型
下一篇 → Erlang 依赖说明
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库