Win10下在 Docker 中运行 RocketMQ

10 阅读1分钟

参考官方文档:本地运行 RocketMQ |火箭MQ

第4步Win10环境下报错如下解决

4. 启动经纪人和代理

解决方案一:在 PowerShell 中运行(推荐)

PowerShell 能更好地处理换行和变量。将你的命令转换为 PowerShell 格式:

  1. 打开 PowerShell(建议以管理员身份运行)。

  2. 运行转换后的命令(注意换行符改为了反引号 `,且变量语法不同):

    powershell

    docker run -d `
      --name rmqbroker `
      --net rocketmq `
      -p 10909:10909 `
      -p 10911:10911 `
      -p 10912:10912 `
      -p 8080:8080 `
      -p 8081:8081 `
      -e "NAMESRV_ADDR=rmqnamesrv:9876" `
      -v ${PWD}/broker.conf:/home/rocketmq/rocketmq-5.3.2/conf/broker.conf `
      apache/rocketmq:5.3.2 `
      sh mqbroker --enable-proxy
    

    关键修改说明:

    • 行尾的 ^ 改为了 ` (反引号),这是 PowerShell 的换行符。
    • 当前路径变量从 %cd% 改为了 ${PWD}

第5步使用 mqadmin 创建一个主题报错解决

步骤 1:找到 Broker 容器内的 IP 地址

在容器内执行:

bash

# 查看容器IP
hostname -i
# 或者
ifconfig

假设你得到的 IP 是 172.17.0.3

步骤 2:直接指定 Broker 地址创建 Topic

bash

sh mqadmin updatetopic -b 172.17.0.3:10911 -t TestTopic

关键参数解释

  • -b:直接指定 Broker 地址(格式:ip:port,Broker 端口默认为 10911)
  • -t:指定要创建的 Topic 名称