老徐用业余时间维护了一个RocketMQ Docker镜像,内置Dashboard管理面板,可一键部署,开箱即用。
拉取镜像
docker pull xuchengen/rocketmq:latest
创建卷
docker volume create rocketmq_data
部署镜像
# Linux 或 Mac docker run -itd \ --name=rocketmq \ --hostname rocketmq \ --restart=always \ -p 8080:8080 \ -p 9876:9876 \ -p 10909:10909 \ -p 10911:10911 \ -p 10912:10912 \ -v rocketmq_data:/home/app/data \ -v /etc/localtime:/etc/localtime \ -v /var/run/docker.sock:/var/run/docker.sock \ --net=host \ xuchengen/rocketmq:latest # Windows docker run -itd ` --name=rocketmq ` --hostname rocketmq ` --restart=always ` -p 8080:8080 ` -p 9876:9876 ` -p 10909:10909 ` -p 10911:10911 ` -p 10912:10912 ` -v rocketmq_data:/home/app/data ` -v /etc/localtime:/etc/localtime ` -v /var/run/docker.sock:/var/run/docker.sock ` --net=host ` xuchengen/rocketmq:latest
控制台
管理员 帐号:admin 密码:admin 普通用户 帐号:normal 密码:normal
环境变量
本镜像内置了下段中指定的环境变量,您可以结合该环境变量进行微调。
# nameserver最小堆内存,默认1024m NAMESRV_XMS=1024m # nameserver最大堆内存,默认1024m NAMESRV_XMX=1024m # nameserver年轻代内存,默认256m NAMESRV_XMN=256m # broker最小堆内存,默认1024m BROKER_XMS=1024m # broker最大堆内存,默认1024m BROKER_XMX=1024m # broker年轻代内存,默认256m BROKER_XMN=256m # broker堆外内存,默认1024m BROKER_MDM=1024m # 控制台nameserver地址,默认localhost:9876 NAMESRV_ADDR=localhost:9876
查看日志
docker logs rocketmq
进入容器
docker exec -it rocketmq /bin/bash
问题
由于Docker容器网络环境问题,造成应用环境获取到的Broker地址为容器IP地址,可能导致网络连接不上。故采用host模式。后续有空我会优化该问题。
最后
开源版RocketMQ虽然没有阿里云商业版那么香,但作为入门学习RocketMQ还是非常有必要,所以我非常推荐大家使用老徐构建的Docker版RocketMQ。