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

一、安装

1、进入docker hub镜像仓库地址:https://hub.docker.com/_/rabbitmq?tab=tags

2、搜索rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像;我们选择带有“mangement”的版本(包含web管理页面);

3、拉取镜像

docker pull rabbitmq:management

使用:docker images 查看所有镜像

 4、创建rabbitmq相关挂载目录

mkdir -p /usr/local/rabbitmq/{data,conf,log}

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

5、根据下载的镜像创建和启动容器

docker run --privileged=true \
-d -p 5672:5672 -p 15672:15672 \
--name rabbitmq -v /usr/local/rabbitmq/data:/var/lib/rabbitmq -v /usr/local/rabbitmq/conf:/etc/rabbitmq -v /usr/local/rabbitmq/log:/var/log/rabbitmq \
--restart=always --hostname=rabbitmqhost -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.9.12-management

参数说明:

-d 后台运行容器;

--name 指定容器名;

-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);

-v 映射目录或文件;

--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);

-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)

注:docker启动的时候提示WARNING: IPv4 forwarding is disabled. Networking will not work.

原因:CentOS的内核中的ip_forward(IP转发)是默认关闭的,需要手动打开

修改配置文件:

vim /usr/lib/sysctl.d/00-system.conf

追加:

net.ipv4.ip_forward=1

接着重启网络:

systemctl restart network

6、使用命令:docker ps 查看正在运行容器

7、开启端口

firewall-cmd --zone=public --add-port=5672/tcp --permanent

firewall-cmd --zone=public --add-port=15672/tcp --permanent

firewall-cmd --reload

二、开启web管理端

1、进入容器,

docker exec -it rabbitmq bash

2、开启web管理端

rabbitmq-plugins enable rabbitmq_management

3、创建用户

默认账户密码都是 guest

默认用户guest访问报错User can only log in via localhost解决方案

第一种
只能本机通过localhost方式访问了,一般不安装图形界面,所以这个基本不会选择

第二种

用admin/admin账号密码登录,创建

Add a user

Virtual Hosts

Set permission,点击用户名,设置权限

 第三种:

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

2.创建用户 rabbitmqctl add_user admin1 admin1

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

4.给用户添加权限 rabbitmqctl set_permissions -p / admin1 ".*" ".*" ".*"

4、可以使用浏览器打开web管理端:http://Server-IP:15672.

原文地址:https://www.cnblogs.com/yang5726685/p/15797001.html