天天看點

docker安裝RockerMQ及控制台

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