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 一直自动重启

posted @ 2023-10-24 10:52  plum_wink  阅读(245)  评论(0编辑  收藏  举报