一:环境准备:
Centos7,Dokcer18.03.1-ce
官方项目地址:https://github.com/apache/incubator-rocketmq-externals 里面有rocketmq的docker运行文档
二:克隆官方项目到本地宿主机:
主要用到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 的dockerfile,构建脚本,和启动脚本的 所以我是基于4.0.0的基础上改dockerfile和构建脚本和启动脚本。其中有几个需要注意的点:
ENV ROCKETMQ_VERSION 4.2.0这里改成我们的rocketmq版本
ENV ROCKET_HOME /opt/rocketmq4.2.0 这里同样改成我们的版本
dockerfile里的那个rocketmq-all-4.2.0-bin-release.zip的下载路径变了,所以得根据实际的下载地址更改
https://dist.apache.org/repos/dist/release/rocketmq/4.2.0/(正确地址)
dockerfile中的EXPOPOSE和VOLUME:分别为端口映射和挂载数卷路径(配置集群的话根据情况进行修改)
设置时区,因为容器里的时间会不对
改完后的namesrv和broke的Dockerfile如下图:
三:运行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
结尾:完整的Dockerfile,docker-compose.yml和使用说明可在这里有完整的Dockerfile和docker-compose.yml可以看到.
注:刚去官方的Github上面看到已经有rocketmq4.2.0相关的Dockerfile
由于本人写的文档是几个月前的存档,现在才想着记录一下.