docker安装Rocketmq

服务器厂商:腾讯云

服务类型 :CentOS-7.6

搜索镜像

docker search rocketmq

docker安装Rocketmq_第1张图片

检索具体版本

我选择第一个,如foxiswho/rocketmq,以下是一个查看当前镜像所有的版本shell命令:

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)}}'

docker安装Rocketmq_第2张图片

我选择的是最新的版本 foxiswho/rocketmq:4.8.0

拉取镜像

docker pull foxiswho/rocketmq:4.8.0

启动服务
rocketmq 有2个服务需要启动:namesrv 和 broker

1 启动namesrv服务
 

docker run -d -p 9876:9876 -v `pwd`/data/namesrv/logs:/root/logs -v `pwd`/data/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" foxiswho/rocketmq:4.8.0 sh mqnamesrv


2 启动broker服务
 

docker run -d -p 10911:10911 -p 10909:10909 -v /usr/data/broker/logs:/root/logs 
-v /usr/data/broker/store:/root/store --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" 
-v /usr/congin/broker.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf
foxiswho/rocketmq:4.8.0  sh mqbroker -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf

注:pwd 为执行命令的当前目录

安装Rocketmq控制台

docker search rocketmq-console

docker安装Rocketmq_第3张图片

这里使用第一个 styletang/rocketmq-console-ng

拉取镜像 

docker pull styletang/rocketmq-console-ng

   启动容器

docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng

 可以使用容器ip 也可以使用宿主ip 两种方法

获取docker容器的ip,进入到rmqnamesrv容器中,执行下面命令:

docker exec -it rmqnamesrv bash
cat /etc/hosts

 使用宿主ip namesrv.addr=填写你服务器外网地址

docker run --network=host -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng

然后启动访问ip+8080地址

docker安装Rocketmq_第4张图片

访问的时候会出现sendDefaultImpl call timeout连接超时问题解决

在启动broker服务的时候使用配置文件启动 此配置文件路径为docker默认安装路径

-c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf

记得启动的时候添加映射文件

Rocketmq配置文件如下

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 127.0.0.1 #宿主ip地址(外网地址)

你可能感兴趣的:(docker安装服务,docker)