docker 安装 RocketMQ
安装 rocketmq
拉取 rocketmq 镜像
docker pull apache/rocketmq
运行 namesrv
docker run -d \
--name rmqnamesrv \
--privileged=true \
-p 9876:9876 \
-v /tool/rocketmq/logs:/home/rocketmq/logs \
-v /tool/rocketmq/store:/home/rocketmq/store \
# 指定内存占用 xmx最大堆内存,xms堆初始空间大小
-e "JAVA_OPT_EXT=-Xmx128m -Xms128m" \
apache/rocketmq:latest \
# 应该是硬性规定namesrv的服务名为mqnamesrv
sh mqnamesrv
--name:容器名
--privileged=true
:提供root权限
-p 宿主机端口:容器端口
:映射目标端口到宿主机中
-v 宿主机目录:容器内部目录
:映射目标目录到宿主机中对应目录下(挂载)
-e "-Dxxxx=xxx"
:设置容器启动参数
启动 broker,需要指定 namesrv 的地址,broker 默认监听的端口是10909,10911,10912
docker run -d \
--name rmqbroker \
--privileged=true \
-p 10909:10909 \
-p 10911:10911 \
-p 10912:10912 \
-v /tool/rocketmq/broker/logs:/home/rocketmq/logs \
-v /tool/rocketmq/broker/store:/home/rocketmq/store \
-v /tool/rocketmq/conf/broker.conf:/home/rocketmq/rocketmq-4.9.4/conf/broker.conf \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
# 指定内存占用 xmx最大堆内存,xms堆初始空间大小
-e "JAVA_OPT_EXT=-Xmx128m -Xms128m" \
# 可以通过 BROKER_PORT=XXXX 指定当前broker使用端口
apache/rocketmq:latest \
sh mqbroker -c /home/rocketmq/rocketmq-4.9.4/conf/broker.conf
可以使用默认的配置文件,也可以自定义配置,配置文件示例:
terName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# namesrv 主机地址
namesrvAddr=服务器ip:9876
# 当前 broker 主机地址
brokerIP1=服务器ip
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911iskMaxUsedSpaceRatio=95
sh -c 指定配置文件启动容器
启动控制台
拉取控制台镜像
docker pull pangliang/rocketmq-console-ng
启动控制台容器,一定要先启动 namesrv
docker run -d \
--restart=always \
--name rmq-admin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=服务器ip:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 9999:8080 \
pangliang/rocketmq-console-ng \
sh rmq-admin
--restart 一直自动重启