1.拉取镜像
docker pull rabbitmq:management
2.启用镜像
mkdir -p /usr/local/rabbitmq/data
mkdir -p /usr/local/rabbitmq/conf
mkdir -p /usr/local/rabbitmq/log
chmod -R 755 /usr/local/rabbitmq # 授权
docker run -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 —name rabbitmq —restart=always —network=myNet \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin \
-v /usr/local/rabbitmq/data:/var/lib/rabbitmq \
-v /usr/local/rabbitmq/conf:/etc/rabbitmq \
-v /usr/local/rabbitmq/log:/var/log/rabbitmq \
-d rabbitmq:management
rabbitmq:
image: rabbitmq:3.7.15-management
container_name: rabbitmq
volumes:
- /opt/mall/rabbitmq/data:/var/lib/rabbitmq #数据文件挂载
- /opt/mall/rabbitmq/log:/var/log/rabbitmq #日志文件挂载
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=admin
ports:
- 5672:5672
- 15672:15672
-p指定端口映射 —name指定容器名称 -e RABBITMQ_DEFAULT_USER 指定用户名 -e RABBITMQ_DEFAULT_PASS=admin指定密码 rabbitmq:latest 版本号
端口访问
RabbitMQ节点绑定到端口(开放服务器TCP套接字),以便接受客户端和CLI工具连接。其他进程和工具,例如SELinux,可能会阻止RabbitMQ绑定到端口。发生这种情况时,该节点将无法启动。
CLI工具,客户端库和RabbitMQ节点也可以打开连接(客户端TCP套接字)。防火墙可以防止节点和CLI工具相互通信。确保可以访问以下端口:
- 4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务
- 5672、5671:由不带TLS和带TLS的AMQP 0-9-1和1.0客户端使用
- 25672:用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000)。除非确实需要这些端口上的外部连接(例如,群集使用联合身份验证或在子网外部的计算机上使用CLI工具),否则这些端口不应公开。有关详细信息,请参见网络指南。
- 35672-35682:由CLI工具(Erlang分发客户端端口)用于与节点进行通信,并从动态范围(通过服务器分发端口+ 10010计算为服务器分发端口+ 10000)分配。有关详细信息,请参见网络指南。
- 15672:HTTP API客户端,管理UI和Rabbitmqadmin (仅在启用了管理插件的情况下)
- 61613、61614:不带TLS和带TLS的STOMP客户端(仅在启用了STOMP插件的情况下)
- 1883、8883:不启用和启用TLS的MQTT客户端(如果启用了MQTT插件)
- 15674:STOMP-over-WebSockets客户端(仅在启用了Web STOMP插件的情况下)
- 15675:MQTT-over-WebSockets客户端(仅在启用Web MQTT插件的情况下)
- 15692:Prometheus指标(仅在启用Prometheus插件的情况下)
进入rabbitmq_management后,如下图:
connections,rabbitmq连接信息,如下图:
channels,建立在连接基础上的通道,实际开发中链接应为全局变量,通道为线程级
admin,管理员用户维护界面,可以增、删、改、查管理员用户
queues,消息队列维护,可以对消息队列进行增加、查询操作,如下图:
建立消息队列时需要确保登陆用户有已经授权的虚拟机,建立虚拟机和授权请参考点击打开链接,授权后出现虚拟机选择栏,如下图:
exchanges,交换机维护界面,提供交换机增加和查询功能,如下图:
绑定交换机和队列,如下图:
需注意交换机name+队列name唯一定位一个队列。