Docker 安装 RocketMQ
1、search 搜索镜像
docker search rocketmq
2、查看镜像版本
curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags\
| tr -d '[\[\]" ]' | tr '}' '\n'\
| awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'
3、pull 拉取镜像
docker pull foxiswho/rocketmq:server-4.7.0
docker pull foxiswho/rocketmq:broker-4.7.0
docker pull styletang/rocketmq-console-ng
4、启动
启动 nameserver
docker run -d -p 9876:9876 --name rocketmq-server foxiswho/rocketmq:server-4.7.0
注意 以下参数需要根据实际情况自行调整
brokerIP1={docker 外部地址,内网或外网}
NAMESRV_ADDR={docker rocketmq-server 内部ip}
{自定义路径}/broker.conf
启动 broker 方式一:参数方式启动
docker run -d -p 10911:10911 -p 10909:10909\
--name rocketmq-broker --link rocketmq-server:namesrv\
-e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt"\
-e "brokerIP1={docker 外部地址,内网或外网 IP}"\
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m"\
foxiswho/rocketmq:broker-4.7.0
启动 broker 方式二:建立本地配置文件映射
建立本地配置文件映射 {自定义路径}/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 以下是我添加的
# 配置nameserver的地址,broker需要上报状态给nameserver
#172.17.0.3 是我进入容器hosts文件查出来的 !!请注意
namesrvAddr = 172.17.0.3:9876
# 配置监听地址,nameserver会将此地址提供给客户端使用
# 如果mq服务需要在外网使用则配成外网,需要在内网使用则配成内网地址
brokerIP1 = 192.168.168.10
# 监听端口,默认是10911
listenPort = 10911
docker run -d -p 10912:10911 -p 10910:10909\
--name rocketmq-broker1 -e "JAVA_OPTS=-Duser.home=/opt"\
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m"\
-v {自定义路径}/broker.conf:/etc/rocketmq/broker.conf \
foxiswho/rocketmq:broker-4.7.0
启动 工具 rocketmq console:
docker run -d --name rocketmq-console -p 8180:8080 --link rocketmq-server:namesrv\
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876\
-Dcom.rocketmq.sendMessageWithVIPChannel=false"\
-t styletang/rocketmq-console-ng
5、查看
浏览器访问 localhost:8180