拉取镜像
docker pull foxiswho/rocketmq:server-4.3.2 docker pull foxiswho/rocketmq:broker-4.3.2
创建nameserver容器
docker create -p 9876:9876 --name rmqserver \ -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \ -e "JAVA_OPTS=-Duser.home=/opt" \ -v /rmq/rmqserver/logs:/opt/logs \ -v /rmq/rmqserver/store:/opt/store \ foxiswho/rocketmq:server-4.3.2
说明
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" 表示设置环境变量,设置jvm的大小,因为rocketmq使用的是生产环境的配置,4GB大小,虚拟机运行会内存不足 -p 9876:9876 表示映射服务器的9876端口(左边)到容器的端口(右边)
创建broker容器
docker create -p 10911:10911 -p 10909:10909 --name rmqbroker \ -e "JAVA_OPTS=-Duser.home=/opt" \ -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \ -v /rmq/rmqbroker/conf/broker.conf:/etc/rocketmq/broker.conf \ -v /rmq/rmqbroker/logs:/opt/logs \ -v /rmq/rmqbroker/store:/opt/store \ foxiswho/rocketmq:broker-4.3.2
说明
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" 表示设置环境变量,设置jvm的大小,因为rocketmq使用的是生产环境的配置,4GB大小,虚拟机运行会内存不足 -v /rmq/rmqbroker/conf/broker.conf:/etc/rocketmq/broker.conf 表示映射服务器中的/rmq/rmqbroker/conf/broker.conf 到docker容器中的/etc/rocketmq/broker.conf
配置broker容器的配置文件
docker exec -it rmqbroker /bin/bash cd /etc/rocketmq/ vi broker.conf
#配置内容
因为前面做了映射,所以不进入容器中,直接修改服务器中的/rmq/rmqbroker/conf/broker.conf 文件也是一样的效果
brokerIP1=172.17.0.3 #内网IP namesrvAddr=192.168.66.66:9876 brokerName=a
brokerIP1是broker所在的地址,我们的程序连接broker需要使用到,broker的通信端口为10909,10911
namesrvAddr是命名服务器的地址,通常是和broker在一起,所以ip地址应该一样,端口为9876
#启动容器
docker start rmqserver rmqbroker