首先拉取一个支持arm版本的rocketmq镜像
1.拉取RocketMQ镜像
docker pull candice0630/rocketmq:5.0.0-alpine
2.拉取RocketMQ控制台镜像
docker pull candice0630/rocketmq-console-ng:2.0
3.运行NameServer
docker run -d -p 9876:9876 --name rmqnamesrv candice0630/rocketmq:5.0.0-alpine sh mqnamesrv
docker logs rmqnamesrv
查看是否启动成功。
4.运行Broker
- 新建目录
mkdir -p ${HOME}/docker/rocketmq/broker/conf
mkdir -p ${HOME}/docker/rocketmq/broker/store
mkdir -p ${HOME}/docker/rocketmq/broker/store
- 新建配置文件broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 此处为本地ip, 如果部署服务器, 需要填写服务器外网ip
brokerIP1 = docker宿主机ip地址
- 创建容器
docker run -d \
-p 10911:10911 \
-p 10909:10909 \
--name rmqbroker \
--link rmqnamesrv:namesrv \
-v ${HOME}/docker/rocketmq/broker/conf/broker.conf:/etc/rocketmq/broker.conf \
-v ${HOME}/docker/rocketmq/broker/logs:/root/logs \
-v ${HOME}/docker/rocketmq/broker/store:/root/store \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms512m -Xmx512m" \
candice0630/rocketmq:5.0.0-alpine sh mqbroker -c /etc/rocketmq/broker.conf
docker logs rmqbroker
查看是否启动成功。
5.安装控制台
docker run -d \
--link rmqnamesrv:namesrv \
-e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=namesrv:9876 -Drocketmq.config.isVIPChannel=false" \
--name rmqconsole \
-p 8088:8080 \
-t candice0630/rocketmq-console-ng:2.0