Docker安装Rabbitmq并挂载宿主机数据目录

1、拉取RabbitMQ镜像

 docker pull rabbitmq
 docker pull rabbitmq:management 
 需要注意的是,docker pull rabbitmq (镜像未配有控制台),docker pull rabbitmq:management (镜像配有控制台)

2、创建rabbitmq相关挂载目录

mkdir -p docker-work/rabbitmq/{data,conf,log}


创建完成之后要特别注意,所创建文件的权限   都设置成777 否则在启动容器的时候容易失败
chmod -R 777 docker-work/rabbitmq #   授权

3、启动容器命令

docker run -d --name rabbitmq --hostname=rabbitmqhost \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin123456 \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-v /docker-work/rabbitmq/data:/var/lib/rabbitmq -v /docker-work/rabbitmq/conf:/etc/rabbitmq -v /docker-work/rabbitmq/log:/var/log/rabbitmq \
-p 5672:5672 -p 15672:15672 \
rabbitmq:management


参数说明:
–restart=always :表示随着Docker容器重启(~~可加可不加~~-e :指定环境变量 RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码,rabbitmq默认账号和密码是guest
--hostname :主机名 (~~可加可不加~~-p :端口映射
-v :文件挂载
-d :表示后台运行
–name rabbitmq :表示启动后的容器实例名称为rabbitmq

介绍:
  如果用的是阿里云的话,顺便开放下这两个端口,不然没法访问

启动失败问题解决:

①使用【docker ps -a】命令获取容器ID,图中标红部分
在这里插入图片描述

②使用【docker logs 容器ID】命令,获取错误日志
Docker安装Rabbitmq并挂载宿主机数据目录_第1张图片
如果错误信息是图上标红部分,则
问题原因:
.erlang.cookie 权限不够
解决方法:
修改文件挂载为 -v /docker-work/rabbitmq/data:/var/lib/rabbitmq/mnesia #数据文件挂载

最后放一下我亲测启动命令

docker run -d  --privileged=true --name rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin123456 \
-v /docker-work/rabbitmq/data:/var/lib/rabbitmq/mnesia -v /docker-work/rabbitmq/conf:/etc/rabbitmq -v /docker-work/rabbitmq/log:/var/log/rabbitmq \
-p 5672:5672 -p 15672:15672 \
rabbitmq:management

3.1、设置主机名的作用 (–hostname=rabbitmqhost)
RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名
Docker安装Rabbitmq并挂载宿主机数据目录_第2张图片
4.2 设置虚拟机名(-e RABBITMQ_DEFAULT_VHOST=my_vhost)的作用
Docker安装Rabbitmq并挂载宿主机数据目录_第3张图片

其他
开启web页面
1、docker ps 查看容器是否运行成功
在这里插入图片描述

2、开启插件:首先使用命令进入容器

docker exec -it myrabbit bash

myrabbit指自己启动容器时定义的名称

Docker安装Rabbitmq并挂载宿主机数据目录_第4张图片

进入后执行

rabbitmq-plugins enable rabbitmq_management

3、添加用户

1.首先进入容器 docker exec -it 容器ID /bin/bash

2.创建用户 rabbitmqctl add_user admin admin123

3.给用户授权角色 rabbitmqctl set_user_tags admin administrator

4.给用户添加权限 rabbitmqctl set_permissions -p / admin “." ".” “.*”
Docker安装Rabbitmq并挂载宿主机数据目录_第5张图片

不用重启服务,直接访问即可。

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