**参考文档** https://blog.csdn.net/apple_74262176/article/details/141886930 **1、拉取 $RocketMQ$ 镜像** ```sh docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.3.2 docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apache/rocketmq:5.3.2 docker.io/apache/rocketmq:5.3.2 ``` **2、 创建容器共享网络 $rocketmq$** ```sh docker network create rocketmq ``` **3、 部署 $NameServer$ 前提条件** ``` # 创建目录 mkdir -p /data/rocketmq/nameserver/{bin,logs} # 授权文件 chmod 777 -R /data/rocketmq/nameserver/* # 创建容器 docker run -d \ --privileged=true --name rmqnamesrv \ docker.io/apache/rocketmq:5.3.2 sh mqnamesrv # 拷贝启动脚本 docker cp rmqnamesrv:/home/rocketmq/rocketmq-5.3.2/bin/runserver.sh /data/rocketmq/nameserver/bin/ # 删除容器 NameServer docker rm -f rmqnamesrv ``` **4、启动容器** $NameServer$ ``` # 启动容器 NameServer docker run -d --network rocketmq \ --privileged=true --restart=always \ --name rmqnamesrv -p 9876:9876 \ -v /data/rocketmq/nameserver/logs:/home/rocketmq/logs \ -v /data/rocketmq/nameserver/bin/runserver.sh:/home/rocketmq/rocketmq-5.3.2/bin/runserver.sh \ docker.io/apache/rocketmq:5.3.2 sh mqnamesrv # 部分命令解释 : 1. -e "MAX_HEAP_SIZE=256M" 设置最大堆内存和堆内存初始大小 2. -e "HEAP_NEWSIZE=128M" 设置新生代内存大小 # 查看启动日志 docker logs -f rmqnamesrv ``` **5、 查看 $NameServer$ 启动日志** - **看到 ‘The Name Server boot success…’, 表示NameServer 已成功启动。** ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522091505752.png) **6、部署 $Broker + Proxy$** - **创建挂载文件夹并授权** ``` mkdir -p /data/rocketmq/broker/{store,logs,conf,bin} chmod 777 -R /data/rocketmq/broker/* ``` **7、创建broker.conf文件** ``` vi /data/rocketmq/broker/conf/broker.conf # nameServer 地址多个用;隔开 默认值null # 例:127.0.0.1:6666;127.0.0.1:8888 namesrvAddr = 10.10.14.14:9876 # 集群名称 brokerClusterName = DefaultCluster # 节点名称 brokerName = broker-a # broker id节点ID, 0 表示 master, 其他的正整数表示 slave,不能小于0 brokerId = 0 # Broker服务地址 String 内部使用填内网ip,如果是需要给外部使用填公网ip brokerIP1 = 10.10.14.14 # Broker角色 brokerRole = ASYNC_MASTER # 刷盘方式 flushDiskType = ASYNC_FLUSH # 在每天的什么时间删除已经超过文件保留时间的 commit log,默认值04 deleteWhen = 04 # 以小时计算的文件保留时间 默认值72小时 fileReservedTime = 72 # 是否允许Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true # 是否允许Broker自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true # 禁用 tsl tlsTestModeEnable = false ``` **8、 拷贝启动脚本** ``` # 启动 Broker 容器 docker run -d \ --name rmqbroker --privileged=true \ docker.io/apache/rocketmq:5.3.2 sh mqbroker # 拷贝脚本文件 docker cp rmqbroker:/home/rocketmq/rocketmq-5.3.2/bin/runbroker.sh /data/rocketmq/broker/bin # 删除容器 Broker docker rm -f rmqbroker ``` **9、 启动容器 Broker** ``` # 启动容器 Broker docker run -d --network rocketmq \ --restart=always --name rmqbroker --privileged=true \ -p 10911:10911 -p 10909:10909 \ -v /data/rocketmq/broker/logs:/root/logs \ -v /data/rocketmq/broker/store:/root/store \ -v /data/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf \ -v /data/rocketmq/broker/bin/runbroker.sh:/home/rocketmq/rocketmq-5.3.2/bin/runbroker.sh \ -e "NAMESRV_ADDR=rmqnamesrv:9876" \ docker.io/apache/rocketmq:5.3.2 sh mqbroker --enable-proxy -c /home/rocketmq/broker.conf # 查看启动日志 docker logs -f rmqbroker ``` - **启动成功日志如下** ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522091934903.png) **10、部署RocketMQ控制台(rocketmq-dashboard)** - **拉取镜像** ```sh docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apacherocketmq/rocketmq-dashboard:2.0.1 docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/apacherocketmq/rocketmq-dashboard:2.0.1 docker.io/apacherocketmq/rocketmq-dashboard:2.0.1 ``` **11、 启动容器 Rocketmq-dashboard** ``` docker run -d \ --restart=always --name rmq-dashboard \ -p 8080:8080 --network rocketmq \ -e "JAVA_OPTS=-Xmx256M -Xms256M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \ docker.io/apacherocketmq/rocketmq-dashboard:2.0.1 ``` **12、 查看启动日志** ```sh docker logs -f rmq-dashboard ``` ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522092229565.png) **13、 访问RMQ控制台** - [**http://10.10.14.14:8080/**](http://10.10.14.14:8080/) **( IP地址改成自己的 )** ![](D:\dsWork\dsProject\dsAi\Doc\20250522092309206.png) **14、 查看创建的 RocketMQ** ![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250522092331493.png) **15、 主题维护** ```shell cd /usr/local/rocketmq/bin # 创建主题 ./mqadmin updateTopic -n 10.10.14.210:9876 -c DefaultCluster -t HuangHaiTest # 创建或重置一个名为 TOPIC_NAME 的 topic,并将该 broker 组的读写队列数皆设为 4 个。 ./mqadmin updateTopic -n 10.10.14.210:9876 -b 10.10.14.210:10911 -t HuangHaiTest -w 4 -r 4 # 查看主题 ./mqadmin topicList -n 10.10.14.210:9876 -c # 删除主题 ./mqadmin deleteTopic -n 10.10.14.210:9876 -c DefaultCluster -t HuangHaiTest ```