
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
RabbitMQ是一款开源的消息代理(Message Broker)软件,基于高级消息队列协议(AMQP)构建,旨在实现分布式系统中高效、可靠的异步通信。通过Docker镜像部署RabbitMQ可快速搭建消息队列服务,减少环境配置复杂度,支持灵活扩展和集成到各类分布式架构中。
默认启动(含管理界面)
RabbitMQ官方镜像默认包含管理插件,启动后可通过Web界面管理:
bashdocker run -d \ --name rabbitmq \ -p 5672:5672 \ # AMQP协议端口(客户端连接) -p 15672:15672 \ # 管理界面端口 rabbitmq:latest
自定义用户与密码
通过环境变量设置默认用户(默认用户guest仅允许本地访问,生产环境需自定义):
bashdocker run -d \ --name rabbitmq \ -p 5672:5672 \ -p 15672:15672 \ -e RABBITMQ_DEFAULT_USER=admin \ # 自定义管理员用户名 -e RABBITMQ_DEFAULT_PASS=password \ # 自定义管理员密码 rabbitmq:latest
数据持久化
挂载数据卷以持久化消息数据(避免容器重启后数据丢失):
bashdocker run -d \ --name rabbitmq \ -p 5672:5672 \ -p 15672:15672 \ -v /path/on/host/rabbitmq/data:/var/lib/rabbitmq \ # 数据持久化目录 -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=password \ rabbitmq:latest
创建docker-compose.yml文件,配置更复杂的部署场景(如持久化、网络、依赖等):
yamlversion: '3.8' services: rabbitmq: image: docker.xuanyuan.run/rabbitmq:latest container_name: rabbitmq ports: - "5672:5672" # AMQP端口 - "15672:15672" # 管理界面端口 environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=password - RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=-rabbit log_levels [{connection,error},{default,error}] # 调整日志级别 volumes: - rabbitmq_data:/var/lib/rabbitmq # 数据卷挂载(需提前创建命名卷) restart: unless-stopped # 容器退出后自动重启(非手动停止时) volumes: rabbitmq_data: # 命名卷,用于持久化数据
启动命令:docker-compose up -d
| 环境变量名 | 默认值 | 描述 |
|---|---|---|
RABBITMQ_DEFAULT_USER | guest | 默认管理员用户名(guest用户仅允许本地IP访问,生产环境需修改) |
RABBITMQ_DEFAULT_PASS | guest | 默认管理员密码 |
RABBITMQ_DEFAULT_VHOST | / | 默认虚拟主机名称 |
RABBITMQ_NODE_NAME | rabbit@<hostname> | 节点名称(集群部署时需唯一,格式:rabbit@node1) |
RABBITMQ_ERLANG_COOKIE | 随机生成 | Erlang节点间通信Cookie(集群中所有节点需相同) |
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS | 无 | 额外的Erlang参数(如日志级别、内存限制等,格式:-rabbit <key> <value>) |
启动容器后,通过浏览器访问 http://<主机IP>:15672 打开管理界面,使用配置的用户名/密码登录(如上述示例中的admin/password)。界面支持查看队列状态、交换机配置、消费者连接、消息统计等功能。
RabbitMQ集群需确保各节点Erlang Cookie一致,且网络互通。以下为2节点集群示例(基于Docker Compose):
yamlversion: '3.8' services: rabbitmq1: image: docker.xuanyuan.run/rabbitmq:latest container_name: rabbitmq1 ports: - "5672:5672" - "15672:15672" environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=password - RABBITMQ_NODE_NAME=rabbit@rabbitmq1 - RABBITMQ_ERLANG_COOKIE=MY_SECRET_COOKIE # 集群Cookie,所有节点需相同 volumes: - rabbitmq1_data:/var/lib/rabbitmq restart: unless-stopped rabbitmq2: image: docker.xuanyuan.run/rabbitmq:latest container_name: rabbitmq2 ports: - "5673:5672" # 避免端口冲突,映射为5673 - "15673:15672" environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=password - RABBITMQ_NODE_NAME=rabbit@rabbitmq2 - RABBITMQ_ERLANG_COOKIE=MY_SECRET_COOKIE # 与rabbitmq1一致 volumes: - rabbitmq2_data:/var/lib/rabbitmq depends_on: - rabbitmq1 restart: unless-stopped command: bash -c "rabbitmq-server -detached && rabbitmqctl stop_app && rabbitmqctl join_cluster rabbit@rabbitmq1 && rabbitmqctl start_app && tail -f /dev/null" # 加入集群 volumes: rabbitmq1_data: rabbitmq2_data:
说明:集群部署后需通过管理界面或
rabbitmqctl set_policy命令配置镜像队列策略,确保消息跨节点备份。
guest用户,自定义强密码,并限制管理界面访问IP(可通过网络策略或反向代理配置)。--cpus、--memory参数),避免资源耗尽。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 aptible/rabbitmq 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: