1. 在根目录下创建rocketmq文件夹用来挂载数据 并赋予777权限chmod 777 rocketmq
再创建几个子目录 具体如下
rocketmq/logs
rocketmq/store
rocketmq/console
rocketmq/console/logs
rocketmq/conf
rocketmq/conf/broker.conf
broker.conf文件添加以下内容:
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
brokerIP1=47.93.156.108 (云服务器外网IP)
2. 在docker-compose.yml中追加rocketmq的namesrv, broker和console三个部分的配置
version: '3.5'
services:
rmqnamesrv:
image: rocketmqinc/rocketmq
container_name: rmqnamesrv
restart: always
ports:
- 9876:9876
environment:
JAVA_OPT_EXT: "-server -Xms1g -Xmx1g"
volumes:
- ./rocketmq4.4.0/logs:/root/logs
command: sh mqnamesrv
networks:
rmq:
aliases:
- rmqnamesrv
rmqbroker:
image: rocketmqinc/rocketmq
container_name: rmqbroker
restart: always
depends_on:
- rmqnamesrv
ports:
- 10909:10909
- 10911:10911
environment:
NAMESRV_ADDR: "rmqnamesrv:9876"
JAVA_OPT_EXT: "-server -Xms1g -Xmx1g -Xmn1g"
volumes:
- ./rocketmq4.4.0/logs:/root/logs
- ./rocketmq4.4.0/store:/root/store
- ./rocketmq4.4.0/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf
command: sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf
networks:
rmq:
aliases:
- rmqbroker
rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rocketmq-console
restart: always
depends_on:
- rmqnamesrv
ports:
- 8080:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
volumes:
- ./etc/localtime:/etc/localtime:ro
- ./rocketmq4.4.0/console/logs:/root/logs
networks:
rmq:
aliases:
- rmqconsole
networks:
rmq:
name: rmq
driver: bridge
3. 回到根目录 运行docker-compose up -d rmqnamesrv rmqbroker rmqbroker 拉取并启动3个容器