1.下载docker images
[root@localhost ~]# docker pull foxiswho/rocketmq:server-4.7.0 # 下载nameserver镜像
[root@localhost ~]# docker pull foxiswho/rocketmq:broker-4.7.0 # 下载broker镜像
[root@localhost conf]# docker pull styletang/rocketmq-console-ng #下载控制台镜像
2.启动nameserver
[root@localhost ~]# docker run -d -p 9876:9876 --name rmqserver -v /docker/rocketmq/namesrv/logs:/home/dockerms/data/rmqnameserver/logs -e "JAVA_OPT_EXT=-server -Xms516m -Xmx516m -Xmn128m" foxiswho/rocketmq:server-4.7.0
2.部署broker
[root@localhost ~]# docker run -d -p 10911:10911 -p 10909:10909 --restart=always --name rmqbroker -e "NAMESRV_ADDR=rmqserver:9876" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" -v /home/dockerms/data/rmqbroker/logs:/root/logs -v /home/dockerms/data/rmqbroker/conf/broker.conf:/etc/rocketmq/broker.conf foxiswho/rocketmq:broker-4.7.0
3.修改broker.conf
#broker集群名称,用于划分broker
brokerClusterName = FangJianCluster
#broker名称,用于主从配对,相同名称的broker才能做主从设置
brokerName=broker-a
#用于标识主从关系,0为主,其他大于0的为从(不能小于0)master设置0,slave设置1。Master角色的Broker支持读和写,Slave角色的Broker仅支持读,也就是Producer只能和Master角色的Broker连接写人消息:Consumer可以连接Master角色的Broker,也可以连接Slave角色的Broker来读取消息。
#Master节点设置
brokerId=0
#在每天的什么时间删除已经超过文件保留时间的 commit log
deleteWhen=04
#以小时计算的文件保留时间
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
brokerIP1=172.17.0.16#此容器的内部地址
#nameServer 地址,查看下上一步部署完nameserver的docker的IP地址
namesrvAddr=172.17.0.13:9876
https://github.com/apache/rocketmq/blob/master/docs/cn/best_practice.md
4.部署console
# 注意修改rocketmq.namesrv.addr后面的地址为容器名称:端口号
docker run -d --name rmqconsole -p 8080:8080 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=172.17.0.13:9876" styletang/rocketmq-console-ng