Docker 启动 RabbitMQ
Docker快速部署方案 ---- RabbitMQ,Docker启动RabbitMQ3.12。
1. 拉取镜像
docker pull rabbitmq:3.12-management
2. 创建挂载目录
mkdir -p /opt/docker/rabbitmq/{data,conf,logs}
chmod -R 777 /opt/docker/rabbitmq/ # 一定要授权777,否则在启动容器的时候容易失败
若不授权,报错如下
2023-06-28 13:46:48 failed to open log file at '/var/log/rabbitmq/rabbit@rabbitmqhost.log', reason: permission denied 2023-06-28 13:46:53 2023-06-28 13:46:55 Kernel pid terminated (application_controller) ({application_start_failure,rabbit,{{cannot_log_to_file,"/var/log/rabbitmq/rabbit@rabbitmqhost.log",eacces},{rabbit,start,[normal,[]]}}})
3. 启动容器
docker run --name rabbitmq3.12 \
-p 5672:5672 -p 15672:15672 \
--hostname=rabbitmqhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-v /opt/docker/rabbitmq/data:/var/lib/rabbitmq \
-v /opt/docker/rabbitmq/conf:/etc/rabbitmq \
-v /opt/docker/rabbitmq/logs:/var/log/rabbitmq \
-d rabbitmq:3.12-management
参数解释
--name :指定容器实例名称
-p :端口映射
--hostname :主机名(可选)
-e :指定环境变量 RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码,rabbitmq默认账号和密码是guest
-v :文件挂载
-d :表示后台运行
注意:
- 设置主机名的作用 (–hostname=rabbitmqhost),RabbitMQ的一个重要事项是它根据所谓的 “节点名称” 存储数据,默认为主机名;
- 设置虚拟主机的作用(-e RABBITMQ_DEFAULT_VHOST=my_vhost),vhost(虚拟主机)是一种逻辑隔离机制,允许你在单个RabbitMQ服务器上创建多个独立的消息队列环境,每个环境都有自己的队列、交换机、绑定和权限设置。
4. 开启WEB管理界面
- 进入到已经成功启动的 rabbitmq3.12 容器;
docker exec -it rabbitmq3.12 /bin/bash # rabbitmq3.12 是启动容器时定义的名称
- 启用 rabbitmq_management ;
rabbitmq-plugins enable rabbitmq_management
- 若启动容器时没有设置 -e 参数的用户和密码,可以添加用户;
1.首先进入容器 docker exec -it 容器ID /bin/bash
2.创建用户 rabbitmqctl add_user user password
3.给用户授权角色 rabbitmqctl set_user_tags user administrator
4.给用户添加权限 rabbitmqctl set_permissions -p / user ".*" ".*" ".*"
- 不用重启服务,直接浏览器访问
ip:15672
即可。