1.部署容器

# 删除容器
docker stop rabbitmq-new  && docker rm rabbitmq-new

cat > deploy_rabbitmq.sh <<-'EOF'
#!/bin/bash

# 新建目录
mkdir -p /opt/rabbitmq/data


# Step 1: 启动 RabbitMQ 容器
docker run -d \
  --name rabbitmq-new \
  --hostname myRabbit \
  -p 5674:5672 \
  -p 15673:15672 \
  -e RABBITMQ_DEFAULT_VHOST=my_vhost \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=admin123456 \
  --restart=always \
  -v /opt/rabbitmq/data:/var/lib/rabbitmq \
  registry.cn-hangzhou.aliyuncs.com/blty/rabbitmq:3.11

# Step 2: 启用管理插件(无需进入容器)
echo "启用 RabbitMQ 管理插件..."
docker exec -it rabbitmq-new rabbitmq-plugins enable rabbitmq_management

# Step 3: 创建配置文件以启用指标收集
echo "配置 metrics_collector..."
docker exec -it rabbitmq-new sh -c \
  "echo 'management_agent.disable_metrics_collector = false' > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf"


# Step 5: 重启容器使配置生效
echo "重启容器以应用新配置..."
docker restart rabbitmq-new

echo "✅ RabbitMQ 部署完成!"
echo "访问管理界面:http://<你的IP>:15673"
echo "默认用户:admin"
echo "默认密码:admin123456"
echo "虚拟主机:my_vhost"

EOF

bash deploy_rabbitmq.sh

注意:在映射的端口号的时候不要映射 5671端口,端口5671是 RabbitMQ 的默认AMQP over TLS/SSL端口。AMQP(Advanced Message Queuing Protocol)是一种消息传递协议,用于在应用程序之间进行可靠的消息传递。

参数说明:

  • -d:表示在后台运行容器;
  • -p:将主机的端口 15673(Web访问端口号)对应当前rabbitmq容器中的 15672 端口,将主机的5674(应用访问端口)端口映射到rabbitmq中的5672端口;
  • –restart=alawys:设置开机自启动
  • -e:指定环境变量:
  • RABBITMQ_DEFAULT_VHOST:默认虚拟机名;
  • RABBITMQ_DEFAULT_USER:默认的用户名;
  • RABBITMQ_DEFAULT_PASS:默认的用户密码;
  • –hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);
  • –name rabbitmq-new:设置容器名称;

2.新增用户

3.新增虚拟主机名称

4.给用户test授权虚拟主机权限

5.授权ok

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐