查找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及控制台