一、搜索 RocketMQ 镜像
docker search rocketmq
二、查看镜像的所有版本
curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags | tr -d '[\[\]" ]' | tr '}' '\n' | awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'
我使用的时 4.7.0 这个版本,创建NameServer容器并启动,端口使用 RecketMQ 默认端口。
docker run -d -p 9876:9876 --name rmqserver foxiswho/rocketmq:server-4.7.0
创建 broker 容器并启动,因为 Broker 有需要配置需要我们修改,所以在创建 broker 容器时,使用宿主机的配置文件,方便日后修改。
三、创建一个配置文件
vim usr/local/rocketmq/conf/broker.conf
四、在配置文件内加入以下内容
brokerIP1 = 192.168.1.128
listenPort = 10911
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
五、创建并启动 Broker
docker run -d -p 10911:10911 -p 10909:10909 --name rmqbroker --link rmqserver:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" -v /usr/local/rocketmq/conf/broker.conf:/etc/rocketmq/broker.conf foxiswho/rocketmq:broker-4.7.0
最后再通过 docker 安装一下 RocketMQ 的可视化管理页面,当然这里也可以去把这部分代码 clone到本地,maven install 启动。个人认为使用docker更方便
docker run -d --name rmqconsole -p 8999:8080 --link rmqserver:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -t styletang/rocketmq-console-ng
六、查看容器状态
通过docket命令查看一下 三个容器的状态, 如果镜像太多 可以通过grep筛选一下,如果 status 这一列 有 Up 字样,说明容器启动成功。
docker ps -a | grep rocket
七、RocketMQ 的可视化管理页面
http://192.168.1.128:8999/