Rocketmq 4.2.0 基于Docker构建镜像

                        Rocketmq 4.2.0 基于Docker构建镜像


一:环境准备:

Centos7,Dokcer18.03.1-ce

官方项目地址:https://github.com/apache/incubator-rocketmq-externals 里面有rocketmq的docker运行文档


二:克隆官方项目到本地宿主机:

git clone https://github.com/apache/rocketmq-externals.git

主要用到rocket-docker中的脚本,分别为rocket4.0.0和4.1.1的dockerfile,镜像构建,和镜像运行脚本,如图:

注意:克隆下来的脚本都是不够权限的    执行chmod+x 脚本名  给予执行权限

如下分别为namesrv和broker的镜像构建脚本(通过其目录下的DockerFile构建)

sudo docker build --build-arg version=4.2.0 -t apache/incubator-rocketmq-namesrv:4.2.0 .

sudo docker build --build-arg version=4.2.0 -t apache/incubator-rocketmq-broker:4.2.0 .

下面这两条制定指令为namesrv和broker的运行指令

sudo docker run -d -p 9876:9876 -v /data/conf:/opt/conf -v /opt/logs:/opt/logs -v /opt/store:/opt/store --name rmqnamesrv -e "JAVA_OPT_EXT=-server -Xms128m -Xmx256m -Xmn128m" apache/incubator-rocketmq-namesrv:4.2.0

sudo docker run -d -p 10911:10911 -p 10909:10909 -v /data/conf/rocketmq-conf/conf:/opt/rocketmq-4.2.0/conf -v /opt/logs:/opt/logs -v /opt/store:/opt/store --name rmqbroker -e "NAMESRV_ADDR=192.168.60.128:9876" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" apache/incubator-rocketmq-broker:4.2.0


可以看到这里我的rocketmq版本都是4.2.0  rocketmq4.2.0的dockerfile,构建脚本,和启动脚本

所以我是基于4.0.0的基础上改dockerfile和构建脚本和启动脚本。其中有几个需要注意的点:

(图中为Rocketmq4.0.0的namesrv和broker的Dockerfile)

Rocketmq 4.2.0 基于Docker构建镜像_第1张图片
Rocketmq 4.2.0 基于Docker构建镜像_第2张图片

1:ENV ROCKETMQ_VERSION 4.2.0这里改成我们的rocketmq版本

2:ENV ROCKET_HOME /opt/rocketmq4.2.0 这里同样改成我们的版本

3:dockerfile里的那个rocketmq-all-4.2.0-bin-release.zip的下载路径变了,所以得根据实际的下载地址更改

https://dist.apache.org/repos/dist/release/rocketmq/4.2.0/(正确地址)

4:dockerfile中的EXPOPOSE和VOLUME:分别为端口映射和挂载数卷路径(配置集群的话根据情况进行修改)

5:设置时区,因为容器里的时间会不对

改完后的namesrv和broke的Dockerfile如下图:


Rocketmq 4.2.0 基于Docker构建镜像_第3张图片
Rocketmq 4.2.0 基于Docker构建镜像_第4张图片


三:运行dockerfile构建脚本和运行脚本(或者输入上面的指令)

./docker_build.sh和./docker_run.sh

输入指令:docker  images  可以看到生成的相应的namesrv和broker镜像

输入 docker  ps -a 可以看到所有的docker容器  指令 docker ps 指令查看正在运行的所有docker容器

指令  docker  exec -it 容器ID  bash进入容器内进行操作


四:rocketmq控制台 (操作很简单)

1:拉取镜像

docker pull styletang/rocketmq-console-ng 

2:创建容器

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

3、打开控制台(界面很炫酷) 本地请访问:localhost:8001


Rocketmq 4.2.0 基于Docker构建镜像_第5张图片

结尾:完整的Dockerfile,docker-compose.yml和使用说明可在我的Github上可以看到.

你可能感兴趣的:(Rocketmq 4.2.0 基于Docker构建镜像)