拉取镜像
docker pull rabbitmq:management
management 标签表示包含管理插件,可以通过 Web 界面管理 RabbitMQ
启动容器
docker run --restart=always -d --name rabbitmq \
-p 9004:5672 -p 9005:15672 \
-e RABBITMQ_DEFAULT_USER=rabbitmq \
-e RABBITMQ_DEFAULT_PASS=rabbitmq \
-v rabbitmq_data:/var/lib/rabbitmq \
rabbitmq:management
docker run: 启动一个新的 Docker 容器。
--restart=always: 容器意外退出或 Docker 服务重启,Docker 将始终自动重新启动该容器。
--name rabbitmq: 给容器命名为 rabbitmq,以便于管理和引用该容器。
-p 9004:5672 -p 9005:15672: 端口映射。15672:管理界面端口,5672:AMQP协议端口
-e RABBITMQ_DEFAULT_USER=rabbitmq: 指定默认的 RabbitMQ 用户名为 rabbitmq。
-e RABBITMQ_DEFAULT_PASS=rabbitmq: 指定默认的 RabbitMQ 密码为 rabbitmq。
-v rabbitmq_data:/var/lib/rabbitmq 创建了一个名为 rabbitmq_data 的卷来持久化 RabbitMQ 数据
-d: 容器将在后台运行,而不是占用当前的终端会话。
在 Docker 中,当你使用 -v 或 volumes 挂载卷时,RabbitMQ 的数据默认存储在容器的 /var/lib/rabbitmq 目录下。这个目录包含 RabbitMQ 的消息存储、数据库和其他持久化数据
以通过以下命令查看它在宿主机上的实际存储路径:
docker volume inspect rabbitmq_data
root@zhwubuntu-virtual-machine:/var/lib# docker volume inspect rabbitmq_data
[
{
"CreatedAt": "2025-04-06T18:34:05+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/rabbitmq_data/_data",
"Name": "rabbitmq_data",
"Options": null,
"Scope": "local"
}
]