# rabbitmq

# docker-compose.yml

version: "2"
services:
  mq:
    image: "rabbitmq:3-management-alpine"
    restart: always
    container_name: "rabbitmq"
    hostname: "rabbitmq"
    ports:
      - "15672:15672"
      - "5672:5672"
      - "25672:25672"
      - "61613:61613"
      - "1883:1883"
      - "15692:15692"
      - "15674:15674"
      - "15670:15670"
    volumes:
      - ./data:/var/lib/rabbitmq/mnesia/rabbit@rabbitmq
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: admin

# 端口映射

  • 15672: web管理端口
  • 5672: ampq 通信接口
  • 25672:
  • 61613: stomp 通信端口
  • 1883: mqtt 通信端口
  • 15675:mqtt web端口

# 数据持久化: 映射的目录存在权限问题

解决办法

# 创建一个临时的 rabbitmq (映射需要存储的目录,此时该目录还是root权限)
docker run --user root --rm -ti \
  -v /opt/docker/rabbitmq/data:/var/lib/rabbitmq/mnesia/rabbit@rabbitmq \
  rabbitmq:3-management-alpine /bin/sh

# 在 docker 打开的命令 sh 中执行
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/mnesia/rabbit@rabbitmq
exit

此时就修复了权限问题,再次使用 docker-compose 运行即可.

设置用户及虚拟主机(vhost)

1.添加用户

add-user

注意: Tags: 不要手动输入,点击下面的选项进行选择角色.

2.添加虚拟主机(vhost)

add-vhost

name下的名称是可以点击的.点击后可以设置权限

3.设置权限

set-permission


至此,用户以及虚拟主机就关联上了.