https://github.com/apache/rocketmq-externalsjava
docker 安装目录
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-docker/image-buildgit
能够执行 sh build-image.sh 4.5.0
也能够执行命令行执行下面命令:github
docker build --no-cache -t rocketmqinc/rocketmq:4.5.0 --build-arg version=4.5.0 .
注意
由于我是在windows下操做的,因此致使scripts目录下两个sh脚本包含了windows的换行符,从而出现错误$’\r’: command not found 错误。
解决方法: 修改Dockerfile文件web
RUN yum install -y dos2unix* java-1.8.0-openjdk-devel.x86_64 unzip gettext nmap-ncat openssl, which gnupg, telnet \ && yum clean all -y
RUN dos2unix ${}.sh
语句,以下:# add scripts COPY scripts/ ${ROCKETMQ_HOME}/bin/ RUN chown -R ${uid}:${gid} ${ROCKETMQ_HOME}/bin/ RUN dos2unix ${ROCKETMQ_HOME}/bin/runserver-customize.sh RUN dos2unix ${ROCKETMQ_HOME}/bin/runbroker-customize.sh
执行 docker images
就能够看到镜像
docker
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" rocketmqinc/rocketmq:4.5.0 sh mqnamesrv
其中pwd
表示执行命令的当前目录,能够改为你磁盘的一个绝对路径,例如 /d/docker/data/namesrv/logs:/root/logsapache
若是上面命令没报错,且执行docker ps 能看到rmqnamesrv容器running状态,则执行下面的命令:windows
docker run -d -p 10911:10911 -p 10909:10909 -v `pwd`/data/broker/logs:/root/logs -v `pwd`/data/broker/store:/root/store --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq:4.5.0 sh mqbroker
最后,执行 docker ps
,能够到两个容器都在运行中,bash
查看svg
https://github.com/apache/rocketmq-externals/tree/master/rocketmq-consoleui
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
注意 脚本里的namesvrAddr要改为你自定义的,这里由于咱们用了docker,因此须要获取docker容器的ip,进入到rmqnamesrv容器中,先执行下面命令:
docker exec -it rmqnamesrv bash
而后执行: cat /etc/hosts
能够看到docker容器的ip,把上面的127.0.0.1改为对应的ip便可
后来发如今web控制台修改也行,以下图