win10 Docker安装RabbitMQ -linux同样适用

1.查看RabbitMQ镜像,管理员方式启动cmd或者powershell,运行下面的命令,注意:需要加上:management,否则是没有对应的管理界面UI的:

执行 docker pull rabbitmq:management

如果想要实现数据持久化,需要添加以下两个命令,不需要的话可以把这两个命令去掉

-v d:/rabbitmq/data:/var/lib/rabbitmq/mnesia/ 挂载宿主机目录到容器目录中

--hostname my_rabbit 指定hostname的名称,因为RabbitMQ的mnesia目录中文件夹名称的一部分是hostname,如果不定义的话,是随机生成的,后续如果重新创建容器,因为挂机目录文件夹名称不一样,就无法保持新旧容器的数据一致。

2.拉取abbitMQ镜像:(这里是默认拉取最新的,也可以在后面指定版本)

执行 docker pull rabbitmq  然后docker images 查看拉取的镜像包

3.启动RabbitMQ

docker run -d --hostname jqtahm_host_rabbit --name jqtahm_rabbit -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -p 15672:15672 -p 5672:5672 rabbitmq:management

说明:

-d 后台运行容器;

–name 指定容器名;

-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);

-v 映射目录或文件(根据自行需要配置);

–hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);

-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;

RABBITMQ_DEFAULT_PASS:默认用户名的密码)

4.安装web管理插件rabbitmq_management

如果,第1步拉取镜像的时候,命令行中没有加:management,就要执行这一步操作。不安装web管理插件,通过http://ip:15672可能访问不了,或者台管理页面点击 Channels 报错,提示Stats in management UI are disabled on this node。

(1)先执行docker ps 拿到当前的镜像ID,我在powershell命令行列表里看到的镜像id好短,然后复制出来是78e6b2e4a4e2,我觉得这一步直接去上面的创建和启动容器的命令行里,找自己确定的参数name 后面的容器名来做步骤2的参数是不是也可以,比如我的是jqtahm_rabbit

(2)进入rabbitMq容器:

docker exec -it {rabbitmq容器ID(不行就用name)} /bin/bash 

我的:

docker exec -it 78e6b2e4a4e2 /bin/bash 

docker exec -it jqtahm_rabbit /bin/bash

(3)查看配置文件,我在这一步执行失败了,跳过这一步到下面改配置文件了。

cat /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf

将配置文件内容,true改为false:

cd /etc/rabbitmq/conf.d/

echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf

(4)退出容器:

exit

(5)输入指令,安装插件:

docker exec -it {rabbitmq容器名称或者id} rabbitmq-plugins enable rabbitmq_management 

我的:docker exec -it 78e6b2e4a4e2 rabbitmq-plugins enable rabbitmq_management

5.重启容器,其实也可以用docker桌面管理程序鼠标重启:

docker restart {rabbitmq容器id}

我的:docker restart 78e6b2e4a4e2

6.浏览器访问地址:

http://ip地址(localhost应该也可以):15672,这里的用户名和密码默认都是guest

http://127.0.0.1:15672/#/

你可能感兴趣的:(微服务,rabbitmq,docker,分布式)