RocketMQ NameServer

NameServer uses the same image as Broker

How To Run

  1. docker run -d \
  2. -v /home/dockerdata/rocketmq/namesrv/logs:/home/rocketmq/logs \
  3. --name rmqnamesrv \
  4. -p 9876:9876 \
  5. wujiawei0926/rocketmq:4.8.0-alpine sh mqnamesrv

RockerMQ Broker

This image we used was built by https://github.com/apache/rocketmq-docker.

The latest version of rocketmq is 4.8.0 when writing this document.

How To Pull

docker pull wujiawei0926/rocketmq:4.8.0-alpine

How To Run

docker run -d \
-v /home/dockerdata/rocketmq/broker/logs:/home/rocketmq/logs \
-v /home/dockerdata/rocketmq/broker/store:/home/rocketmq/store \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-p 10909:10909 -p 10911:10911 -p 10912:10912 \
wujiawei0926/rocketmq:4.8.0-alpine sh mqbroker

RocketMQ Console

How To Pull

docker pull wujiawei0926/rocketmq-console-ng

How To Run

docker run -d \
--name rmqconsole -p 19969:19969 \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-t \
wujiawei0926/rocketmq-console-ng

If using docker-compose

In the case of docker-compose, create docker-compose.yml like following:

version: '2'
services:
  #Service for nameserver
  namesrv:
    image: wujiawei0926/rocketmq:4.8.0-alpine
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - /home/dockerdata/rocketmq/namesrv/logs:/home/rocketmq/logs
    command: sh mqnamesrv

  #Service for broker
  broker:
    image: wujiawei0926/rocketmq:4.8.0-alpine
    container_name: rmqbroker
    links:
      - namesrv
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    environment:
      - NAMESRV_ADDR=namesrv:9876
    volumes:
      - /home/dockerdata/rocketmq/broker/logs:/home/rocketmq/logs
      - /home/dockerdata/rocketmq/store:/home/rocketmq/store
      - /home/dockerdata/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.8.0-alpine/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq-4.8.0-alpine/conf/broker.conf

  #Service for console
  console:
    image: wujiawei0926/rocketmq-console-ng
    container_name: rmqconsole
    links:
      - namesrv
    ports:
      - 19969:19969
    environment:
      - JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false

save yml file, then execute following command:

docker-compose -f docker-compose.yml up -d

How to verify RocketMQ works well

  1. Use docker ps|grep rmqbroker to find your RocketMQ broker container id.
  2. Use docker exec -it {container_id} ./mqadmin clusterList -n {nameserver_ip}:9876 to verify if RocketMQ broker works, for example: ```shell root$ docker exec -it 63950574b491 ./mqadmin clusterList -n 192.168.43.56:9876 OpenJDK 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0 OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

    Cluster Name #Broker Name #BID #Addr #Version #InTPS(LOAD) #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE

    DefaultCluster 63950574b491 0 172.17.0.3:10911 V4_3_0 0.00(0,0ms) 0.00(0,0ms) 0 429398.92 -1.0000

```

  1. 浏览器或curl访问[http://localhost:19969/](http://localhost:19969/#/),检查console面板能否正常打开