1、进入docker hub镜像仓库地址:https://hub.docker.com/
2、搜索rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像;我们选择带有“mangement”的版本(包含web管理页面);
3、拉取镜像
docker pull rabbitmq:3.7.7-management
使用:docker images 查看所有镜像
4、根据下载的镜像创建和启动容器
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -e RABBITMQ_DEFAULT_VHOST=my_vhost -p 15672:15672 -p 5672:5672 rabbitmq:3.7.7-management
说明:
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
15672 :表示 RabbitMQ 控制台端口号,可以在浏览器中通过控制台来执行 RabbitMQ 的相关操作。
5672 : 表示 RabbitMQ 所监听的 TCP 端口号,应用程序可通过该端口与 RabbitMQ 建立 TCP 连接,完成后续的异步消息通信
RABBITMQ_DEFAULT_USER:用于设置登陆控制台的用户名,这里我设置 admin
RABBITMQ_DEFAULT_PASS:用于设置登陆控制台的密码,这里我设置 admin
容器启动成功后,可以在浏览器输入地址:http://ip:15672/ 访问控制台
我的服务器是阿里云服务器,所以还需要去开放一下端口,否则是无法访问的。
这里有一个很重要的问题:RabbitMQ出于安全的考虑,默认是只能访问localhost:15762访问的,如果想用其他ip,是需要自己配置的。
docker exec -it rabbitmq /bin/bash
cd etc/rabbitmq/
vim rabbitmq.config
{rabbit,[{tcp_listeners,[5672]},{loopback_users,["admin"]}]}
rabbitmqctl add_user admin admin
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator
rabbitmqctl list_users
rabbitmqctl list_permissions -p /
5、使用命令:docker ps 查看正在运行容器
6、可以使用浏览器打开web管理端:http://Server-IP:15672