使用docker部署rocketmq时的坑

阿里云1000元通用代金券点此领取

官方docker项目地址:
https://github.com/apache/incubator-rocketmq-externals
里面有rocketmq的docker运行文档

如果同时需要docker运行console需要注意一个问题
下面是官方文档中运行console的命令,里面的JAVA_OPTS参数是不正确的,不知道是不是版本原因

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

按照这个命令运行的话会报错 connect to <null> failed, 如图
这里写图片描述

对比直接在服务器上运行的命令,把其中java_opts改为如下

docker run -e 
"JAVA_OPTS=-Drocketmq.config.namesrvAddr=127.0.0.1:9876
-D" -p 8080:8080 -t styletang/rocketmq-console-ng

再次运行,没有报错。

下面是我启动namesrv,broker,console用的docker-compose.yml

version: '2'
namesrv: 
    image: apache/incubator-rocketmq-namesrv:4.0.0-incubating
    net: "host"  # 涉及到一些特殊的服务,所以用的是host,正常情况建议不要使用host网络
    volumes:
     - /data/rocket/namesrv/opt/logs:/opt/logs # 保留日志到宿主机
     - /data/rocket/namesrv/opt/store:/opt/store  
     - /etc/localtime:/etc/localtime:ro # 修改容器内的时区和宿主机一样
    ports:
     - "9876:9876"

broker:
    image: apache/incubator-rocketmq-broker:4.0.0-incubating
    net: "host"
    environment:
      NAMESRV_ADDR: xx.xx.xx.xx:9876  # namesrv的地址
    volumes:
     - /data/rocket/broker/opt/logs:/opt/logs # 保留日志
     - /data/rocket/broker/opt/store:/opt/store # 保留数据到宿主机
     - /etc/localtime:/etc/localtime:ro
    #links:
    # - namesrv:namesrv
    ports:
     - "10911:10911"
     - "10909:10909"

console:
    image: styletang/rocketmq-console-ng:latest
    net: "host"
    volumes:
     - /etc/localtime:/etc/localtime:ro
    ports:
     - "8080:8080"
    #links:
    # - namesrv:namesrv
    environment:
     JAVA_OPTS: -Drocketmq.config.namesrvAddr=xx.xx.xx.xx:9876

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值