欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Windows下使用docker安装rocketmq

Windows下使用docker安装rocketmq

2025/5/21 11:52:23 来源:https://blog.csdn.net/weixin_44253133/article/details/146023622  浏览:    关键词:Windows下使用docker安装rocketmq

最近准备把rocketmq重新学下,先把环境搭建好

  • Windows下安装docker
  • 拉取最新的rocketmq
  • 启动nameserver
  • 启动broker

首先在Windows下安装docker,之前不知道为什么,docker desktop启动一直报错,今天把Windows更新了一下,docker desktop正常打开了

docker拉取最新的rocketmq

docker pull apache/rocketmq:5.3.1

在这里插入图片描述
创建一个网络以便nameserver和broker之间进行通信

docker network create rocketmq

启动nameserver

docker run -d --name rmqnamesrv -p 9876:9876 --network rocketmq apache/rocketmq:5.3.1 sh mqnamesrv

查看namesrv启动状态

docker logs -f rmqnamesrv

在这里插入图片描述
启动broker

docker run -d --name rmqbroker --network rocketmq -p 10911:10911 -p 10909:10909  -e "NAMESRV_ADDR=rmqnamesrv:9876" -v /d/rocketmq/broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf apache/rocketmq:5.3.1 sh mqbroker

其中-v表示用于将宿主主机的文件或目录挂载容器内部,这样容器就能访问宿主主机上的文件系统

/d/rocketmq/broker.conf 是宿主机的路径,即Windows电脑里的路径
/home/rocketmq/rocketmq-5.3.1/conf/broker.conf 这是docker里的路径
启动成功
查看容器运行状态

以下是报错信息以及修改方式

报错提示容器已经被使用
The container name "/rmqnamesrv" is already in use by container "xxxx". You have to remove (or rename) that container to be able to reuse that name.
先查找正在运行的同名容器

docker ps -a

然后删除

docker rm 容器id或容器名称

报错
docker: Error response from daemon: invalid mode: \Users\xxxx\broker.conf.
docker挂在卷里需要使用Linux风格的路径样式
如果你的文件位于 C:\Users\xxx\broker.conf,则需要将路径写为 /c/Users/xxx/broker.conf



报错
org.apache.rocketmq.tools.command.SubCommandException: UpdateTopicSubCommand command failed
因为这个命令是在broker里使用的,首先要保证broker正常运行
执行docker ps -a的时候,如果显示exited 则说明容器未运行
例如
在这里插入图片描述
先查看日志

docker logs rmqbroker

在这里插入图片描述
提示找不到该文件,首先需要将文件写成Linux下文件格式
这里是因为之前把宿主主机与docker文件位置写反了
正确方式是:-v <宿主机路径>:<容器路径>[:挂载选项]
正确的启动broker方式

docker run -d --name rmqbroker --network rocketmq -p 10911:10911 -p 10909:10909  -e "NAMESRV_ADDR=rmqnamesrv:9876" -v /d/rocketmq/broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf apache/rocketmq:5.3.1 sh mqbroker

在这里插入图片描述

报错
org.apache.rocketmq.client.exception.MQClientException: No route info of this topic: NORMAL_TOPIC
需要使用docker创建一个topic
先进入broker容器里

docker exec -it rmqbroker bash

执行命令

mqadmin updateTopic -n localhost:9876 -b localhost:10911 -t NORMAL_TOPIC

在这里插入图片描述
提示报错 mqadmin not found
需要先找到mqadmin的绝对位置

find -name mqadmin

然后在执行mqadmin命令
在这里插入图片描述

上述即安装完成

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词