当前位置:   article > 正文

docker-compose安装RabbitMQ

docker-compose安装rabbitmq

目录

1. 拉取镜像

2. 创建RabbitMQ文件夹,以及yml文件

3. 构建

4. 允许management插件

5. 验证

安装延时插件

其他:

1. 其他命令

2. RabbitMQ中的用户角色


1. 拉取镜像

版本tags地址: Docker

  1. # 指定版本
  2. docker pull rabbitmq:3.11-alpine
  3. # 最新版
  4. # docker pull rabbitmq:latest

2. 创建RabbitMQ文件夹,以及yml文件

  1. mkdir /data/rabbitmq/data
  2. cd /data/rabbitmq
  3. touch docker-compose.yml

yml文件写入内容:

  1. version: "3.8"
  2. services:
  3. rabbitmq:
  4. image: rabbitmq:3.11-alpine # 镜像版本
  5. container_name: rabbitmq
  6. restart: always
  7. volumes:
  8. - ./data/:/var/lib/rabbitmq/
  9. ports:
  10. - 5672:5672
  11. - 15672:15672
  12. environment:
  13. - RABBITMQ_DEFAULT_USER=admin # 默认管理员账号
  14. - RABBITMQ_DEFAULT_PASS=admin123 # 默认管理密码

3. 构建

  1. cd /data/rabbitmq
  2. #构建
  3. docker-compose up -d

4. 允许management插件

  1. # 进入容器
  2. docker exec -it rabbitmq bash
  3. # 启动管理插件
  4. rabbitmq-plugins enable rabbitmq_management

5. 验证

开放端口5672/15672,浏览器输入:ip:15672,输入yml中账户名密码登录

安装延时插件

1. 下载对应版本插件

Github下载地址

文件放于/data/rabbitmq目录

2. 复制到容器内

  1. # docker cp 插件名称 容器id(or 名称):/plugins
  2. docker cp rabbitmq_delayed_message_exchange-3.11.1.ez rabbitmq:/plugins

3. 启用插件

  1. # 进入容器
  2. docker exec -it rabbitmq bash
  3. # 启用插件
  4. rabbitmq-plugins enable rabbitmq_delayed_message_exchange

其他:

1. 其他命令

  1. # 查看已启动的插件
  2. rabbitmq-plugins list --enabled
  3. # 创建用户
  4. rabbitmqctl add_user 用户名 密码
  5. # 设置为管理员
  6. rabbitmqctl set_user_tags 用户名 administrator
  7. # 表示设置用户权限。 {vhost} 表示待授权用户访问的vhost名称,默认为 "/"; {user} 表示待授权反问特定vhost的用户名称; {conf}表示待授权用户的配置权限,是一个匹配资源名称的正则表达式; {write} 表示待授权用户的写权限,是一个匹配资源名称的正则表达式; {read}表示待授权用户的读权限,是一个资源名称的正则表达式。
  8. # rabbitmqctl set_permissions -p / admin "^mip-.*" ".*" ".*"
  9. # 例如上面例子,表示授权给用户 "admin" 具有所有资源名称以 "mip-" 开头的 配置权限;所有资源的写权限和读权限。
  10. rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}
  11. # 表示删除一个用户
  12. rabbitmqctl delete_user {username}
  13. # 表示修改指定的用户的密码
  14. rabbitmqctl change_password {username} {newpassword}
  15. # 表示清除指定用户的密码
  16. # 执行此操作后的用户,将不能用密码登录,但是可能通过已经配置的SASL EXTERNAL的方式登录。
  17. rabbitmqctl clear_password {username}
  18. # 表示设置用户的角色,{tag}可以是零个,一个,或者是多个。并且已经存在的tag也将会被移除。
  19. rabbitmqctl set_user_tags {username} {tag ...}
  20. # {vhost} 表示待创建的虚拟主机项的名称
  21. rabbitmqctl add_vhost {vhost}
  22. # 表示列出所有的vhost。其中 {vhostinfoitem} 表示要展示的vhost的字段信息,展示的结果将按照 {vhostinfoitem} 指定的字段顺序展示。这些字段包括: name(名称) 和 tracing (是否为此vhost启动跟踪)。
  23. # 如果没有指定具体的字段项,那么将展示vhost的名称。
  24. rabbitmqctl list_vhosts {vhostinfoitem ...}

2. RabbitMQ中的用户角色

在RabbitMQ中的用户角色主要分为五类:
超级管理员(administrator)、监控者(monitor)、决策制定者(policymaker)、普通管理者(management)和其他(none)。

每个角色对应的相应权限如下:

none:

不能登录管理控制台(启用management plugin的情况下,以下相同)

management:

用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动

policymaker:

management的权限外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters

monitoring:

management的权限外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息

administrator :

policymaker和monitoring的权限外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/902673
推荐阅读
相关标签
  

闽ICP备14008679号