RabbitMQ
RabbitMQ 是一个开源的消息中间件,基于 AMQP(高级消息队列协议)协议,提供可靠的消息传递、异步处理和分布式系统的解耦。它支持多种消息传输模式,如点对点、发布/订阅等,适用于分布式应用程序、微服务架构和高并发环境。RabbitMQ 提供了高可用性、消息确认、死信队列等功能,广泛应用于数据交换和任务调度。
下载镜像
docker pull bitnami/rabbitmq:4.0.21
下载插件(可选)
如果不安装插件可以跳过此步骤。
将下载的插件上传到本地的HTTP服务上面,方便后续安装的时候加载插件。
mkdir plugins
wget -P plugins https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v4.0.2/rabbitmq_delayed_message_exchange-4.0.2.ez1
2
2
推送到仓库
docker tag bitnami/rabbitmq:4.0.2 registry.lingo.local/bitnami/rabbitmq:4.0.2
docker push registry.lingo.local/bitnami/rabbitmq:4.0.21
2
2
保存镜像
docker save registry.lingo.local/bitnami/rabbitmq:4.0.2 | gzip -c > image-rabbitmq_4.0.2.tar.gz1
创建目录
sudo mkdir -p /data/container/rabbitmq/data
sudo chown -R 1001 /data/container/rabbitmq1
2
2
运行服务
普通模式
docker run -d --name ateng-rabbitmq \
-p 20009:5672 -p 20010:15672 --restart=always \
-v /data/container/rabbitmq/data:/bitnami/rabbitmq/mnesia \
-e RABBITMQ_USERNAME=admin \
-e RABBITMQ_PASSWORD=Admin@123 \
-e RABBITMQ_MANAGEMENT_ALLOW_WEB_ACCESS=true \
-e RABBITMQ_ERL_COOKIE=u8B1rlnzSckNvtkNr7kRAU4NVt8F6OtU \
-e TZ=Asia/Shanghai \
registry.lingo.local/bitnami/rabbitmq:4.0.21
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
插件模式
docker run -d --name ateng-rabbitmq \
-p 20009:5672 -p 20010:15672 --restart=always \
-v /data/container/rabbitmq/data:/bitnami/rabbitmq/mnesia \
-e RABBITMQ_USERNAME=admin \
-e RABBITMQ_PASSWORD=Admin@123 \
-e RABBITMQ_MANAGEMENT_ALLOW_WEB_ACCESS=true \
-e RABBITMQ_PLUGINS="rabbitmq_management, rabbitmq_web_stomp, rabbitmq_auth_backend_ldap, rabbitmq_delayed_message_exchange" \
-e RABBITMQ_COMMUNITY_PLUGINS="http://miniserve.lingo.local/rabbitmq-plugins/rabbitmq_delayed_message_exchange-4.0.2.ez" \
-e RABBITMQ_ERL_COOKIE=u8B1rlnzSckNvtkNr7kRAU4NVt8F6OtU \
-e TZ=Asia/Shanghai \
registry.lingo.local/bitnami/rabbitmq:4.0.21
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
MQTT + STOMP
docker run -d --name ateng-rabbitmq \
-p 20009:5672 -p 20010:15672 -p 20013:1883 -p 20014:15675 -p 20015:61613 --restart=always \
-v /data/container/rabbitmq/data:/bitnami/rabbitmq/mnesia \
-e RABBITMQ_USERNAME=admin \
-e RABBITMQ_PASSWORD=Admin@123 \
-e RABBITMQ_MANAGEMENT_ALLOW_WEB_ACCESS=true \
-e RABBITMQ_PLUGINS="rabbitmq_management, rabbitmq_web_stomp, rabbitmq_auth_backend_ldap, rabbitmq_delayed_message_exchange, rabbitmq_mqtt, rabbitmq_web_mqtt" \
-e RABBITMQ_COMMUNITY_PLUGINS="http://10.1.24.3:20034/kongyu/plugins/rabbitmq_delayed_message_exchange-4.0.2.ez" \
-e RABBITMQ_ERL_COOKIE=u8B1rlnzSckNvtkNr7kRAU4NVt8F6OtU \
-e TZ=Asia/Shanghai \
registry.lingo.local/bitnami/rabbitmq:4.0.21
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
查看日志
docker logs -f ateng-rabbitmq1
使用服务
AMQP URL: 192.168.1.114:20009
Web URL: http://192.168.1.114:20010/
MQTT TCP URL: 192.168.1.114:20013
STOMP over WebSocket URL: 192.168.1.114:20014
STOMP over TCP: 192.168.1.114:20015
Username: admin
Password: Admin@1231
2
3
4
5
6
7
2
3
4
5
6
7
删除服务
停止服务
docker stop ateng-rabbitmq1
删除服务
docker rm ateng-rabbitmq1
删除目录
sudo rm -rf /data/container/rabbitmq1