该脚本包括RocketMQ NameServer、RocketMQ Broker及RocketMQ Console的一键安装,其中rocketmq的版本为当前最新版本4.8.0,使用的是foxiswho打包的镜像,而rocketmq-console-ng在Docker上面找了一下,打包的版本至少都是半年以前的了,因而自己拉取最新源码打包并推送到了Docker镜像仓库中。
当前安装脚本通过自定义网络及指定网络别名的方式,解决了不同Docker容器之间的相互访问的网络问题,脚本如下:
#创建RocketMQ使用的共有网络,便于相互访问
docker network create rocketmq_network
#foxiswho/rocketmq 4.7.0以后不再分别创建broker及nameserver的镜像,统一使用rocketmq镜像,只是在启动命令上区分
docker pull foxiswho/rocketmq:4.8.0
#rocketmq控制台2.0.0版本,源码来自于官方仓库https://github.com/apache/rocketmq-externals#rocketmq-console
docker pull 56553655/rocketmq-console-ng:2.0.0
#启动rocketmq nameserver
docker run -d --network rocketmq_network --network-alias rmqnamesrv --name rmqnamesrv -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" -p 9876:9876 foxiswho/rocketmq:4.8.0 sh mqnamesrv
#启动rocketmq broker
docker run -d --network rocketmq_network --network-alias rmqbroker --name rmqbroker -e "NAMESRV_ADDR=rmqnamesrv:9876" -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" -p 10911:10911 -p 10912:10912 -p 10909:10909 foxiswho/rocketmq:4.8.0 sh mqbroker
#启动rocketmq-console-ng
docker run -d --network rocketmq_network --network-alias rocketmq-console-ng -p 8080:8080 --name rocketmq-console-ng 56553655/rocketmq-console-ng:2.0.0