docker-compose安装RabbitMQ

目录

1. 拉取镜像

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

3. 构建

4. 允许management插件

5. 验证

安装延时插件

其他:

1. 其他命令

2. RabbitMQ中的用户角色


1. 拉取镜像

版本tags地址: Docker

# 指定版本
docker pull rabbitmq:3.11-alpine

# 最新版
# docker pull rabbitmq:latest

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

mkdir /data/rabbitmq/data

cd /data/rabbitmq

touch docker-compose.yml

yml文件写入内容:

version: "3.8"
services:
  rabbitmq:
    image: rabbitmq:3.11-alpine # 镜像版本
    container_name: rabbitmq
    restart: always
    volumes:
      - ./data/:/var/lib/rabbitmq/
    ports:
      - 5672:5672
      - 15672:15672
    environment:
      - RABBITMQ_DEFAULT_USER=admin # 默认管理员账号
      - RABBITMQ_DEFAULT_PASS=admin123 # 默认管理密码

3. 构建

cd /data/rabbitmq

#构建
docker-compose up -d

4. 允许management插件

# 进入容器
docker exec -it rabbitmq bash

# 启动管理插件
rabbitmq-plugins enable rabbitmq_management

5. 验证

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

安装延时插件

1. 下载对应版本插件

Github下载地址

文件放于/data/rabbitmq目录

2. 复制到容器内

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

3. 启用插件

# 进入容器
docker exec -it rabbitmq bash

# 启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

其他:

1. 其他命令

# 查看已启动的插件
rabbitmq-plugins list --enabled

# 创建用户
rabbitmqctl add_user 用户名 密码

# 设置为管理员
rabbitmqctl set_user_tags 用户名 administrator


# 表示设置用户权限。 {vhost} 表示待授权用户访问的vhost名称,默认为 "/"; {user} 表示待授权反问特定vhost的用户名称; {conf}表示待授权用户的配置权限,是一个匹配资源名称的正则表达式; {write} 表示待授权用户的写权限,是一个匹配资源名称的正则表达式; {read}表示待授权用户的读权限,是一个资源名称的正则表达式。
# rabbitmqctl set_permissions -p /  admin "^mip-.*" ".*" ".*"
# 例如上面例子,表示授权给用户 "admin" 具有所有资源名称以 "mip-" 开头的 配置权限;所有资源的写权限和读权限。
rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}


# 表示删除一个用户
rabbitmqctl delete_user {username}

# 表示修改指定的用户的密码
rabbitmqctl change_password {username} {newpassword}

# 表示清除指定用户的密码
# 执行此操作后的用户,将不能用密码登录,但是可能通过已经配置的SASL EXTERNAL的方式登录。
rabbitmqctl clear_password {username}

# 表示设置用户的角色,{tag}可以是零个,一个,或者是多个。并且已经存在的tag也将会被移除。
rabbitmqctl set_user_tags {username} {tag ...}

# {vhost} 表示待创建的虚拟主机项的名称
rabbitmqctl add_vhost {vhost}

# 表示列出所有的vhost。其中 {vhostinfoitem} 表示要展示的vhost的字段信息,展示的结果将按照 {vhostinfoitem} 指定的字段顺序展示。这些字段包括: name(名称) 和 tracing (是否为此vhost启动跟踪)。
# 如果没有指定具体的字段项,那么将展示vhost的名称。

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

你可能感兴趣的:(Java,java-rabbitmq,rabbitmq,docker)