使用docker部署rocketmq

前提

    1. rocketmq使用最新4.9.2版本
    2.在宿主机创建broker和namesrv目录用来挂载文件 
        2.1 /data/rocketmq-4.9.2/broker/logs,/data/rocketmq-4.9.2/broker/store 
        2.2 /data/rocketmq-4.9.2/namesrv/logs,/data/rocketmq-4.9.2/namesrv/store 
    3.文件自行下载:链接:https://pan.baidu.com/s/11P8YroxA31kNaDIpo0Ia1g 提取码:vyuc    
3.需要使用我云盘里面rocketmq-4.9.2的库文件,略微修改了runbroker.sh文件
4.可以使用我云盘里面的console包,我是按照官网说明编译的,没有修改

1.搭建namesrv

1.1 构建镜像文件

创建 namesrv-Dockerfile 文件,拷贝如下内容

FROM java:8
 
# set environment
ENV JVM_XMS="3g" \
    JVM_XMX="3g" \
    JVM_XMN="512m" \
    JVM_MS="128m" \
    JVM_MMS="320m"
 
ENV ROCKETMQ_VERSION 4.9.2
ENV ROCKETMQ_HOME /opt/rocketmq-${ROCKETMQ_VERSION}
WORKDIR ${ROCKETMQ_HOME}

# 设置时间,东八区
RUN set -x \
    && rm -f /etc/localtime \
    && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

ADD rocketmq-${ROCKETMQ_VERSION}/bin bin
ADD rocketmq-${ROCKETMQ_VERSION}/conf conf
ADD rocketmq-${ROCKETMQ_VERSION}/lib lib
 
RUN mkdir -p \
	/opt/logs \
	/opt/store
 
VOLUME /data/rocketmq-4.9.2/logs \
       /data/rocketmq-4.9.2/store
 
EXPOSE 9876
RUN chmod +x bin/mqnamesrv
CMD cd ${ROCKETMQ_HOME}/bin && export JAVA_OPT=" -Duser.home=/opt" && sh mqnamesrv

1.2 构建镜像并创建容器

    # 第一步:构建镜像 :
    sudo docker build -f namesrv-Dockerfile -t rocketmq-namesrv:4.9.2 .
    # 第二步:启动容器 将日志和数据挂载到虚拟机
    sudo docker run -d -p 9876:9876 --name rocketmq-namesrv -v  /data/rocketmq-4.9.2/namesrv/logs:/opt/logs -v /data/rocketmq-4.9.2/namesrv/store:/opt/store--restart=always rocketmq-namesrv:4.9.2

2.搭建broker

2.1创建镜像文件

创建 broker-Dockerfile文件,拷贝如下内容

FROM java:8
 
# set environment
ENV JVM_XMS="3g" \
    JVM_XMX="3g" \
    JVM_XMN="512m" \
    JVM_MS="128m" \
    JVM_MMS="320m" \
    BROKER_IP1="127.0.0.1"
 
ENV ROCKETMQ_VERSION 4.9.2
ENV ROCKETMQ_HOME /opt/rocketmq-${ROCKETMQ_VERSION}
WORKDIR ${ROCKETMQ_HOME}
 
 
# 设置时间,东八区
RUN set -x \
    && rm -f /etc/localtime \
    && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone
 
ADD rocketmq-${ROCKETMQ_VERSION}/bin bin
ADD rocketmq-${ROCKETMQ_VERSION}/conf conf
ADD rocketmq-${ROCKETMQ_VERSION}/lib lib
 
RUN mkdir -p \
    /opt/logs \
    /opt/store
 
VOLUME /data/rocketmq-4.9.2/logs \
       /data/rocketmq-4.9.2/store
 
 
EXPOSE 10909 10911
RUN chmod +x bin/mqbroker
CMD cd ${ROCKETMQ_HOME}/bin && export JAVA_OPT="${JAVA_OPT} -Duser.home=/opt" && echo "brokerIP1=$BROKER_IP1" > ../conf/broker.conf
&& sh mqbroker -n ${NAMESRV_ADDR} -c ../conf/broker.conf


2.1 构建镜像并创建容器

#第一步:构建镜像
    docker build -f broker-Dockerfile -t rocketmq-broker:4.9.2 .
#第二步:创建容器 BROKER_IP1 传入broker的地址
 sudo docker run -d -p 10909:10909 -p 10911:10911 --name rocketmq-broker -v  /data/rocketmq-4.9.2/broker/logs:/opt/logs -v /data/rocketmq-4.9.2/broker/store:/opt/store -e "NAMESRV_ADDR=192.168.2.128:9876" -e "JVM_XMS=3g" -e "JVM_XMX=3g" -e "JAVA_OPT=-XX:MetaspaceSize=256m" -e "BROKER_IP1=42.192.166.170" --restart=always rocketmq-broker:4.9.2

3.搭建控制台:console

创建 console-Dockerfile文件,拷贝如下内容

3.1创建镜像文件

FROM java:8
VOLUME /tmp
ADD rocketmq-console-ng-1.0.0.jar app.jar
RUN sh -c 'touch /app.jar'
# 设置时间,东八区
RUN set -x \
    && rm -f /etc/localtime \
    && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /app.jar" ]

3.2 构建镜像并创建容器

# 第一步:构建镜像文件 
    sudo docker build -f console-Dockerfile -t rocketmq-console:1.0.0 .
# 第二步:创建容器
    sudo docker run -d -p 8081:8080 -e NAMESRV_ADDR=192.168.2.128:9876 --name rocketmq-console --restart=always  rocketmq-console:1.0.0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值