Docker中安装RabbitMQ

1、一点废话(可直接跳转至标题2)

通常在拉取镜像之前,除了通过命令执行 docker search xxx 之外,我们还可以通过 Docker 镜像仓库查询指定的镜像。

如下是 rabbitmq 镜像的搜索结果:

一般拉取下载数 + stars 数相对比较高的,可防止被别人挂马。

我们点开这个 stars 数最多的 rabbitmq,然后在标签页可以找到镜像当前的一些版本信息:

截图中的这两个标签版本,management 表示带 web 管理界面的版本,也就是可视化操作的,所以镜像相对大个10M左右,我们通常都是使用这个版本。

2、正文部分

2.1、拉取镜像

悉知:本文基于 rabbitmq:3.8.9-management

docker pull rabbitmq:3.8.9-management

安装过程如下:

2.2、创建并启动镜像

执行如下命令:

docker run -d --hostname my-rabbitmq \
-p 15672:15672 -p 5672:5672 \
--name my-rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.8.9-management

执行截图:

关于参数:

  • -d:以守护进程方式在后台运行
  • --hostname:设置容器的主机名称,仅本机可见。这种方式是写到 /etc/hostname ,以及 /etc/hosts 文件中,作为容器主机IP的别名,并且将显示在容器的bash中。不过这种方式设置的主机名将不容易被容器之外可见。这将不会出现在 docker ps 或者 其他的容器的 /etc/hosts 文件中。
  • --name:指定容器名
  • -p:指定服务运行的端口。
  • RABBITMQ_DEFAULT_USER:用于设置登陆控制台的用户名,这里我设置 admin
  • RABBITMQ_DEFAULT_PASS:用于设置登陆控制台的密码,这里我设置 admin容器启动成功后,可以在浏览器输入地址:http://ip:15672/访问控制台

额外说一下 rabbitmq 这几个端口的作用:

  • 4369:EPMD( Erlang Port Mapper Daemon)端口号,在 Erlang 集群中相当于 dns 的作用
  • 5672:client 端通信端口
  • 15672:web管理界面端口

2.3、访问web管理界面

账号密码为上方指定的 user_pass:admin、admin

2.4、创建账户

切换到 Admin 标签,完成对用户的增删改查,其中 Tags 表示角色,角色取值有:

  • administrator (超级管理员):可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

  • monitoring(监控者):可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

  • policymaker(策略制定者):可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。

  • management(普通管理者):仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

  • none(其他):无法登陆管理控制台,通常就是普通的生产者和消费者。

如下是 Web 操作截图界面:

2.5、创建虚拟 host(niceyoo)

创建 host 可以通过 docker 进入容器内部通过命令方式创建,当然也可以直接在 web 管理界面新增更加的直观。

Admin 标签,右侧 Virtual Hosts ,Add virtual host

2.6、分配用户Host权限

点击上方新增的 host 节点,进入该 host

3、文章推荐

RabbitMQ六种队列模式-简单队列
RabbitMQ六种队列模式-工作队列
RabbitMQ六种队列模式-发布订阅
RabbitMQ六种队列模式-路由模式
RabbitMQ六种队列模式-主题模式
SpringBoot整合RabbitMQ
RabbitMQ消息幂等性问题

 

posted @ 2020-12-06 22:17  niceyoo  阅读(593)  评论(0编辑  收藏  举报