Docker部署RocketMQ

1|0创建RocketMQ的docker网络

# 后续的name-server,broker,rocketmq-console都会使用该网络 docker network create rocketmq # 创建好网络可以使用docker inspect命令查看网络信息 docker inspect rocketmq

2|0部署name-server

docker run -d --name rmqnamesrv -p 9876:9876 \ --privileged=true \ --network rocketmq \ -v /mydata/services/rocketmq/namesrv/logs:/root/logs \ -v /mydata/services/rocketmq/namesrv/store:/root/store \ -e "MAX_POSSIBLE_HEAP=100000000" \ rocketmqinc/rocketmq sh mqnamesrv autoCreateTopicEnable=true

2|1参数说明

--name rmqnamesrv:指定容器名称为rmqnamesrv,注意这个名字,后续会使用。 --network rocketmq:为容器指定网络为rocketmq,同一网络下的容器能够通过容器名称互通。 --privileged=true:如果使用-v映射了目录,则使用该参数获取文件访问权限

查看启动成功后的日志,有success说明成功了:

docker logs -f rmqnamesrv

3|0部署broker

根据实际情况创建一个broker.conf文件,然后将以下内容写入到broker.conf文件中(记得修改brokerIP1的值为宿主机的ip地址)

brokerClusterName = DefaultCluster brokerName=broker-a brokerId=0 deleteWhen=04 fileReservedTime=48 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH # 类似注册中心 namesrvAddr=xxxx:9876 # 当前broker监听的IP(主) brokerIP1 = xxxx

4|0部署broker

docker run -d --name rmqbroker -p 10911:10911 -p 10909:10909 \ --privileged=true \ --network rocketmq \ -v /mydata/services/rocketmq/broker/logs:/root/logs \ -v /mydata/services/rocketmq/broker/store:/root/store \ -v /mydata/services/rocketmq/broker/conf/broker.conf:/opt/rocketmq/conf/broker.conf \ -e "NAMESRV_ADDR=rmqnamesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" \ rocketmqinc/rocketmq sh mqbroker autoCreateTopicEnable=true -c /opt/rocketmq/conf/broker.conf

参数说明

--network rocketmq:为容器指定网络为rocketmq,同一网络下的容器能够通过容器名称互通。 -e "NAMESRV_ADDR=rmqnamesrv:9876":此处的rmqnamesrv就是容器name-server的名称

查看启动成功后的日志,有success说明成功了:

docker logs -f rmqbroker

下面来验证一下容器内部是否能够通过容器名称进行网络互联。
验证思路为从一个容器内部ping另一个容器,看是否能够ping通。

# 进入broker容器 docker exec -it rmqbroker /bin/bash # ping name-server的容器名称 ping rmqnamesrv

5|0部署console

# 同样在启动的时候指定同一个network # 注意修改rocketmq.namesrv.addr后面的地址为容器名称:端口号 # 官方文档 docker run -d --name rocketmq-dashboard -p 9870:8080 --network rocketmq \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" -t apacherocketmq/rocketmq-dashboard:latest # 网上的 docker run -d --name rmqconsole -p 9870:8080 --network rocketmq \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" styletang/rocketmq-console-ng

访问控制台


__EOF__

本文作者fortuneju
本文链接https://www.cnblogs.com/fortuneju/p/18027285.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   fortuneju  阅读(304)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示