1.获取RabbitMQ最新镜像
docker pull rabbitmq:latest
2.创建rabbitmq相关挂载目录
mkdir -p /usr/local/rabbitmq/{data,conf,log}
3.创建完成之后要对所创建文件授权权限,都设置成777 否则在启动容器的时候容易失败
chmod -R 777 /usr/local/rabbitmq
4.用docker运行镜像(如果指定了虚拟主机和主机名称,则订阅者和发布者需要执行主机和虚拟主机名称)
docker run -d \
-p 5672:5672 -p 15672:15672 \
--name rabbitmq \
-v /usr/local/rabbitmq/data:/var/lib/rabbitmq -v /usr/local/rabbitmq/conf:/etc/rabbitmq -v /usr/local/rabbitmq/log:/var/log/rabbitmq \
--restart=always \
--hostname rabbitmq \
-e RABBITMQ_DEFAULT_VHOST=rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:latest
5.进入Docker中
docker exec -it rabbitmq /bin/bash
6.开启web管理页面
rabbitmq-plugins enable rabbitmq_management
7.如果打开交换机时报异常
RabbitMQ Management:Management API returned status code 500
因为是使用docker 容器安装的,所有需要进入容器
docker exec -it rabbitmq /bin/bash
进入目录
cd /etc/rabbitmq/conf.d/
执行命令
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
8.退出容器(不会关闭容器)
Ctrl + p + q
9.rabbitmq设置docker 运行自启动(如果docker run 已经携带restart参数则不需要此操作步骤)
docker update 23365f7f39b2 --restart=always
备注:23365f7f39b2 为RabbitMq容器ID
参数说明:
-d 后台运行容器
--name 指定容器名
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号)
-v 映射目录或文件
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量
RABBITMQ_DEFAULT_VHOST:默认虚拟机名
RABBITMQ_DEFAULT_USER:默认的用户名
RABBITMQ_DEFAULT_PASS:默认用户名的密码
注:docker启动的时候提示WARNING: IPv4 forwarding is disabled. Networking will not work.
原因:CentOS的内核中的ip_forward(IP转发)是默认关闭的,需要手动打开
修改配置文件:
vim /usr/lib/sysctl.d/00-system.conf
追加:
net.ipv4.ip_forward=1
接着重启网络:
systemctl restart network