我用的系统是 CentOS 7
拉取镜像
官网如下

目前最新的版本是4.2版本,我就下载4.2版本了
docker pull rabbitmq:4.2-management
带有 -management 后缀的版本自带 Web 管理界面

运行容器
docker run -d \
--name rabbitmq \
--hostname my-rabbit \
-p 5672:5672 \
-p 15672:15672 \
-v /mydata/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_DEFAULT_USER=snow \
-e RABBITMQ_DEFAULT_PASS=123456 \
--restart=always \
rabbitmq:4.2-management
代码解释
- -d (Detached):
后台运行。如果不加这个,容器的日志会占据你的控制台,一旦你按 Ctrl+C,服务就停了
- --name rabbitmq:
给这个容器起个名字叫 rabbitmq
以后你可以直接用 docker stop rabbitmq 或 docker restart rabbitmq 来操作它,而不用去查随机生成的容器 ID
- --hostname my-rabbit:
设置容器内部的虚拟主机名
每个虚拟主机相互独立,有各自的exchange、queue
如果你不指定,Docker 会生成一个随机字符串
- -p 5672:5672:
5672 是 RabbitMQ 的 核心通信端口
Java 代码连接 MQ 时,填写的端口就是这个
- -p 15672:15672:
15672 是 Web 管理界面的端口
在浏览器里访问页面用的就是这个端口
- -v /mydata/rabbitmq:/var/lib/rabbitmq:
挂载数据卷
/mydata/rabbitmq 是 CentOS 宿主机 的目录(会自动创建)
/var/lib/rabbitmq 是 容器内部 存放消息数据的目录
即使你删除了这个容器,你的队列消息、交换机配置依然保存在 CentOS 的 /mydata/rabbitmq 目录下,不会丢失
- -e RABBITMQ_DEFAULT_USER=snow:
- -e RABBITMQ_DEFAULT_PASS=123456:
-e (Environment): 设置环境变量
设置默认登录用户名和默认登录密码,喜欢什么设置什么
- --restart=always:
开机自启
如果 Docker 服务重启了,这个 RabbitMQ 容器会自动启动,不需要你手动去 start
- rabbitmq:4.2-management:
指定要使用的镜像名称和版本

浏览器访问
http://192.168.48.130:15672
换成你自己的虚拟机地址

