查找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)}}'
创建并启动NameServer容器
docker run -d -p 9876:9876 --name rmqserver foxiswho/rocketmq:server-4.7.0
创建并启动broker容器
- 创建broker配置文件
[root@localhost conf]# pwd
/docker/rocketmq/conf
[root@localhost conf]# ls
broker.conf
[root@localhost conf]#
vim broker.conf
#将一下配置保存
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.134.130 #本机地址
- 执行下面的命令创建并启动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 /docker/rocketmq/conf/broker.conf:/etc/rocketmq/broker.conf foxiswho/rocketmq:broker-4.7.0
测试
-
发送消息
进入容器:
执行:docker exec -it 4e26026518c7 bash
[rocketmq@4e26026518c7 bin]$ ./tools.sh org.apache.rocketmq.example.quickstart.Producer
-接受消息
再开一个窗口进入容器:
执行:docker exec -it 4e26026518c7 bash
测试结果省略[rocketmq@4e26026518c7 bin]$ ./tools.sh org.apache.rocketmq.example.quickstart.Comsumer
关闭RocketMQ
mqshutdown namesrv
mqshutdown broker
控制台的安装
- 构建rockermq-console容器
docker run --name rmqconsole --link rmqserver:namesrv \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqserver:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8180:8080 -t styletang/rocketmq-console-ng
- 访问控制台
docker安装RockerMQ及控制台