1.拉取Rocketmq镜像
1
| docker pull apache/rocketmq
|
2.创建网络
1
| docker network create rocketmq-net
|
3.创建NameServer容器
1
| docker run -d --name rocketmq-namesrv --network rocketmq-net -p 9876:9876 apache/rocketmq sh mqnamesrv
|
broker.conf文件路径:可以进入容器中查询获取,下一步会使用
4.创建Broker容器
1
| docker run -d -p 10911:10911 -p 10909:10909 --name rocketmq-broker --net rocketmq-net -e "NAMESRV_ADDR=rocketmq-namesrv:9876" apache/rocketmq sh mqbroker -c /home/rocketmq/rocketmq-5.1.4/conf/broker.conf
|
5.创建管理页面容器(rocketmq-console)
1
| docker run -d --name rocketmq-console --network rocketmq-net -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rocketmq-namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8900:8080 apacherocketmq/rocketmq-dashboard:latest
|
6.测试
进入容器中
1
| docker exec -it <容器ID> /bin/bash
|
在/home/rocketmq/rocketmq-5.1.4/bin目录下通过tools.sh进行测试
1 2 3 4 5 6 7
| [rocketmq@53418ea5ecb9 bin]$ pwd /home/rocketmq/rocketmq-5.1.4/bin [rocketmq@53418ea5ecb9 bin]$ ls cachedog.sh controller export.sh mqbroker mqbroker.numanode0 mqbroker.numanode3 mqnamesrv mqproxy.cmd os.sh README.md runserver.cmd startfsrv.sh cleancache.sh dledger mqadmin mqbroker.cmd mqbroker.numanode1 mqcontroller mqnamesrv.cmd mqshutdown play.cmd runbroker.cmd runserver.sh tools.cmd cleancache.v1.sh docker-entrypoint.sh mqadmin.cmd mqbrokercontainer mqbroker.numanode2 mqcontroller.cmd mqproxy mqshutdown.cmd play.sh runbroker.sh setcache.sh tools.sh
|
发送消息
1
| ./tools.sh org.apache.rocketmq.example.quickstart.Producer
|
消费消息
1
| ./tools.sh org.apache.rocketmq.example.quickstart.Consumer
|