Docker本地部署RocketMq

2,193 阅读1分钟

部署流程

前期准备

本地环境: macOS 10.14.6 docker

1.拉取官方镜像
docker pull rocketmqinc/rocketmq

成功拉取可以看到对应镜像: 在这里插入图片描述

2.运行docker容器

运行nameserver:

docker run -d -p 9876:9876 -v `pwd`/data/namesrv/logs:/root/logs -v `pwd`/data/namesrv/store:/root/store --name rmqnamesrv  rocketmqinc/rocketmq sh mqnamesrv

运行broker:

docker run -d -p 10911:10911 -p 10909:10909 -v `pwd`/data/broker/logs:/root/logs -v `pwd`/data/broker/store:/root/store --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

注意点:

  1. /opt/rocketmq-4.4.0/conf/broker.conf 为容器内对应配置文件的路径
  2. 为避免端口不可访问的情况,要记得关掉防火墙
  3. 通过docker跑起来的broker,其cluster地址默认为docker的ip,外网无法访问需要更改其ip,具体操作见下文。

注意点3操作流程:

  1. 进入容器内,修改配置文件
docker exec -it broker容器id /bin/sh
进入到容器后:
    vi /opt/rocketmq-4.4.0/conf/broker.conf
    在broker.conf文件内新增brokerIP1属性,即:
    brokerIP1 = 本机外网ip地址
    修改完成后保存退出
  1. 重启容器
docker container restart broker容器id 
// 注:前文运行broker命令中的 -c /opt/rocketmq-4.4.0/conf/broker.conf, 即表示使用此配置文件

至此,rocketmq的nameserver和broker就已经在本地部署完成了

3.部署可视化界面

1.拉取rocketmq-console镜像

docker pull styletang/rocketmq-console-ng

2.运行rocketmq-console

docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=本机外网ip:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8001:8080 -t styletang/rocketmq-console-ng

3.查看主页 http://localhost:8001 在这里插入图片描述