天天看点

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