docker安装rocketmq_docker 安装 rocketMq 就是这么简单?

废话不多说,上才艺

  • rocketMq Github : https://github.com/apache/rocketmq-docker
  • rocketMq Version:https://archive.apache.org/dist/rocketmq/
  • springboot 集成 RocketMq:https://blog.csdn.net/itjavaee/article/details/108305994

1.先把源码拉下来并执行构建脚本

# 创建存储目录mkdir -p /home/service# 拉取源码git clone https://github.com/apache/rocketmq-docker.git# 进入脚本目录cd /home/service/rocketmq-docker/image-build# 执行构建sh build-image.sh 4.7.1 alpine
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

注意:发现在构建的时候一直开在下载alpine,下载的版本是v3.9,如果发现自己卡在那,请参考第二步,换成你自己的版本

2. 替换下载源为阿里的站点,编辑 Dockerfile-alpine 文件(不替换忒慢。。。)

# 找到 RUN apk add --no-cache bash gettext nmap-ncat openssl busybox-extras,在上面添加以下2行替换命令RUN echo -e https://mirrors.aliyun.com/alpine/v3.9/main/ > /etc/apk/repositoriesRUN echo -e https://mirrors.aliyun.com/alpine/v3.9/community/ >> /etc/apk/repositories
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

3. 继续执行构建

# 4.7.1 是我当时的最新版本了,可以根据上面那个 RocketMQ Version 查看新的版本sh build-image.sh 4.7.1 alpine
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

注意:然后我又发现卡在下载rocketmq-all-x-bin-release.zip

4.没错。。继续换站点

  • 我们先去到 rocketMq 的官网:http://rocketmq.apache.org/dowloading/releases/,找到自己下载的版本对应的链接
  • 这是4.7.1的 https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
  • 站点列表 http://www.apache.org/mirrors/
  • 这是国内站点之一:https://mirrors.bfsu.edu.cn

最终Dockerfile-alpine文件内容,仅供参考

FROM openjdk:8-alpineRUN echo -e https://mirrors.aliyun.com/alpine/v3.9/main/ > /etc/apk/repositoriesRUN echo -e https://mirrors.aliyun.com/alpine/v3.9/community/ >> /etc/apk/repositoriesRUN apk add --no-cache bash gettext nmap-ncat openssl busybox-extrasARG user=rocketmqARG group=rocketmqARG uid=3000ARG gid=3000# RocketMQ is run with user `rocketmq`, uid = 3000# If you bind mount a volume from the host or a data container,# ensure you use the same uidRUN addgroup --gid ${gid} ${group}     && adduser --uid ${uid} -G ${group} ${user} -s /bin/bash -DARG version# Rocketmq versionENV ROCKETMQ_VERSION ${version}# Rocketmq homeENV ROCKETMQ_HOME  /home/rocketmq/rocketmq-${ROCKETMQ_VERSION}WORKDIR  ${ROCKETMQ_HOME}# InstallRUN set -eux;     apk add --virtual .build-deps curl gnupg unzip;     curl -L https://mirrors.bfsu.edu.cn/apache/rocketmq/${ROCKETMQ_VERSION}/rocketmq-all-${ROCKETMQ_VERSION}-bin-release.zip -o rocketmq.zip;     curl -L https://archive.apache.org/dist/rocketmq/${ROCKETMQ_VERSION}/rocketmq-all-${ROCKETMQ_VERSION}-bin-release.zip.asc -o rocketmq.zip.asc;     #https://www.apache.org/dist/rocketmq/KEYS        curl -L https://www.apache.org/dist/rocketmq/KEYS -o KEYS;                 gpg --import KEYS;     gpg --batch --verify rocketmq.zip.asc rocketmq.zip;     unzip rocketmq.zip;         mv rocketmq-all*/* . ;         rmdir rocketmq-all* ;         rm rocketmq.zip rocketmq.zip.asc KEYS;         apk del .build-deps ;     rm -rf /var/cache/apk/* ;     rm -rf /tmp/*# Copy customized scriptsCOPY scripts/ ${ROCKETMQ_HOME}/bin/RUN chown -R ${uid}:${gid} ${ROCKETMQ_HOME}# Expose namesrv portEXPOSE 9876# Override customized scripts for namesrvRUN mv ${ROCKETMQ_HOME}/bin/runserver-customize.sh ${ROCKETMQ_HOME}/bin/runserver.sh  && chmod a+x ${ROCKETMQ_HOME}/bin/runserver.sh  && chmod a+x ${ROCKETMQ_HOME}/bin/mqnamesrv# Expose broker portsEXPOSE 10909 10911 10912# Override customized scripts for brokerRUN mv ${ROCKETMQ_HOME}/bin/runbroker-customize.sh ${ROCKETMQ_HOME}/bin/runbroker.sh  && chmod a+x ${ROCKETMQ_HOME}/bin/runbroker.sh  && chmod a+x ${ROCKETMQ_HOME}/bin/mqbroker# Export Java optionsRUN export JAVA_OPT=" -Duser.home=/opt"# Add ${JAVA_HOME}/lib/ext as java.ext.dirsRUN sed -i 's/${JAVA_HOME}/jre/lib/ext/${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext/' ${ROCKETMQ_HOME}/bin/tools.shUSER ${user}WORKDIR ${ROCKETMQ_HOME}/bin
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

5. 再次构建

sh build-image.sh 4.7.1 alpine
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

6. 成功构建,就能看到镜像了

docker imagesREPOSITORY                TAG                 IMAGE ID            CREATED             SIZEapacherocketmq/rocketmq   4.7.1-alpine        acfbfb0c8d66        3 minutes ago       145MB
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

7. 运行镜像

cd /home/service/rocketmq-docker/sh stage.sh 4.7.1# 然后就会生成运行文件与目录# Stage version = 4.7.1# mkdir /home/service/rocketmq-docker/stages/4.7.1# staged templates into folder /home/service/rocketmq-docker/stages/4.7.1cd /home/service/rocketmq-docker/stages/4.7.1/templates# 启动./play-docker.sh alpine
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

启动成功:

10efbae6d40d8b9ed7d5482820232ac9.png
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

8. 使用指定的broker.conf启动(这步可以跳过)

docker rm -f rmqbrokermkdir -p /home/config/docker/rocketmq/broker/logsmkdir -p /home/config/docker/rocketmq/broker/storemkdir -p /home/config/docker/rocketmq/broker/conftouch /home/config/docker/rocketmq/broker/conf/broker.conf# 所属集群名字(同一主从下:Master和slave名称要一致)brokerClusterName = DefaultCluster# broker名字,注意此处不同的配置文件填写的不一样  例如:在a.properties 文件中写 broker-a  在b.properties 文件中写 broker-bbrokerName = broker-a# 0 表示 Master,>0 表示 SlavebrokerId = 0# 检测可用的磁盘空间大小,当磁盘被占用超过90%,消息写入会直接报错                    diskMaxUsedSpaceRatio=90# commitLog每个文件的大小默认1GmapedFileSizeCommitLog=1073741824# ConsumeQueue每个文件默认存30W条,根据业务情况调整mapedFileSizeConsumeQueue=300000deleteWhen = 04fileReservedTime = 48# Broker 的角色: ASYNC_MASTER 异步复制Master ; SYNC_MASTER 同步双写Master; SLAVEbrokerRole = ASYNC_MASTER# 刷盘方式 ASYNC_FLUSH 异步刷盘; SYNC_FLUSH 同步刷盘flushDiskType = ASYNC_FLUSH#set `brokerIP1` if you want to set physical IP as broker IP.brokerIP1=192.168.0.30 #change you own physical IP Address#是否开启自动注册topicautoCreateTopicEnable=false#是否开启自动注册groupautoCreateSubscriptionGroup=true#是否开启过滤查询enablePropertyFilter=true#再次执行docker run --restart=always -d -p 10911-10912:10911-10912 -p 10909:10909 --name rmqbroker -v /home/config/docker/rocketmq/broker/logs:/root/logs -v /home/config/docker/rocketmq/broker/store:/root/store -v /home/config/docker/rocketmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-4.7.1/conf/broker.conf --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPT=${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m" apacherocketmq/rocketmq:4.7.1-alpine sh mqbroker -c ../conf/broker.conf
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

9.测试是否可用

#设置 rmqnamesrv 和 rmqbroker 自动启动docker update --restart=always rmqnamesrvdocker update --restart=always rmqbroker# 关闭防火墙,不然会链接不上systemctl stop firewalld# 关闭防火墙后,记得重启一下dockersystemctl restart docker.service# 执行开机禁用防火墙自启命令(可不使用,但机子要是重启的话,还需要执行上面的关闭stop) systemctl disable firewalld.servicedocker exec -it rmqbroker ./mqadmin clusterList -n 192.168.0.30:9876#Cluster Name     #Broker Name            #BID  #Addr                  #Version                #InTPS(LOAD)       #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

10. 搭建图形化界面控制台

docker run --restart=always -d --name rmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.0.30:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8088:8080 styletang/rocketmq-console-ng
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

打开链接:http://192.168.0.30:8088/#/ 就会出现控制台相关信息

318b4fddaa2ccbcd848c2a354cc18a84.png
6b5511ab56f7a32d8d15249bcc0a0b7b.gif

你学废了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值