Loading

docker部署rocketmq

1、首先部署注册中心name-server

# 先创建专属网络

1.1 容器网络互联创建docker网络:

# 后续的name-server,broker,rocketmq-console都会使用该网络

docker network create rocketmq

# 创建好网络可以使用docker inspect命令查看网络信息

docker inspect rocketmq

1.2 部署name-server:

# 无须先pull镜像,docker run之前会自动下载镜像

docker run -d --name rmqnamesrv -p 9876:9876

\ --privileged=true

\ --network rocketmq

\ -v /docker/rocketmq/namesrv/logs:/root/logs

\ -v /docker/rocketmq/namesrv/store:/root/store

\ -e "MAX_POSSIBLE_HEAP=100000000"

\ rocketmqinc/rocketmq:4.4.0 sh mqnamesrv autoCreateTopicEnable=true

# 说明:

--name rmqnamesrv:指定容器名称为rmqnamesrv,注意这个名字,后续会使用。

--network rocketmq:为容器指定网络为rocketmq,同一网络下的容器能够通过容器名称互通。

--privileged=true:如果使用-v映射了目录,则使用该参数获取文件访问权限

1.3 查看启动日志:

docker logs -f rmqnamesrv

 2、部署broker

2.1首先在宿主机创建broker的配置文件目录

# 创建broker的配置文件目录

sudo mkdir -p /docker/rocketmq/broker/conf

# 创建broker的配置文件broker.conf

sudo vi /docker/rocketmq/broker/conf/broker.conf

# broker.conf内容如下(记得修改brokerIP1的值为宿主机的ip地址)

brokerClusterName = DefaultCluster

brokerName=broker-a

brokerId=0

deleteWhen=04

fileReservedTime=48

brokerRole=ASYNC_MASTER

flushDiskType=ASYNC_FLUSH

brokerIP1=(宿主机内部IP地址)

2.2 部署broker

# 无须先pull镜像,docker run之前会自动下载镜像

docker run -d --name rmqbroker -p 10911:10911 -p 10909:10909

\ --privileged=true

\ --network rocketmq

\ -v /docker/rocketmq/broker/logs:/root/logs

\ -v /docker/rocketmq/broker/store:/root/store

\ -v /docker/rocketmq/broker/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf

\ -e "NAMESRV_ADDR=rmqnamesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000"

\ rocketmqinc/rocketmq:4.4.0 sh mqbroker autoCreateTopicEnable=true -c /opt/rocketmq-4.4.0/conf/broker.conf

# 说明:

--network rocketmq:为容器指定网络为rocketmq,同一网络下的容器能够通过容器名称互通。
-e "NAMESRV_ADDR=rmqnamesrv:9876":此处的rmqnamesrv就是容器name-server的名称

# 查看启动日志:

sudo docker logs -f rmqbroker

验证容器之间是否互通:

# 进入broker容器

docker exec -it rmqbroker /bin/bash

# ping name-server的容器名称

ping rmqnamesrv

(容器之间可以通过容器名称链接)

 3、部署GUI(console)

# 同样在启动的时候指定同一个network

# 注意修改rocketmq.namesrv.addr后面的地址为容器名称:端口号

docker run -d --name rmqconsole -p 8080:8080 --network rocketmq

\ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" styletang/rocketmq-console-ng

 

 

 

 

 


posted @ 2022-02-20 17:53  Allfuture  阅读(201)  评论(0编辑  收藏  举报