Docker安装rocketmq、rocketmq-console
1 查询镜像
docker search rocketmq
2 下载官方镜像
1
| docker pull apache/rocketmq
|
3 创建卷文件
1 2 3 4 5 6
| mkdir -m 777 -p /opt/module/docker/rocketmq/nameserver/logs mkdir -m 777 -p /opt/module/docker/rocketmq/nameserver/store mkdir -m 777 -p /opt/module/docker/rocketmq/broker/logs mkdir -m 777 -p /opt/module/docker/rocketmq/broker/data mkdir -m 777 -p /opt/module/docker/rocketmq/broker/store mkdir -m 777 -p /opt/module/docker/rocketmq/broker/conf
|
4 启动 namesrv 容器
1 2 3 4 5 6 7 8 9 10 11
| docker run -d \ --privileged=true \ --restart=always \ --name rmqnamesrv \ -p 9876:9876 \ -v /opt/module/docker/rocketmq/nameserver/logs:/home/rocketmq/logs \ -v /opt/module/docker/rocketmq/nameserver/store:/home/rocketmq/store \ -e "MAX_HEAP_SIZE=256M" \ -e "HEAP_NEWSIZE=128M" \ -e "MAX_POSSIBLE_HEAP=100000000" \ apache/rocketmq sh mqnamesrv
|
5 创建 broker.conf
1 2
| vi /opt/module/docker/rocketmq/broker/conf/broker.conf
|
6 编辑broker.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 集群名称 brokerClusterName=DefaultCluster # 节点名称 brokerName=broker-a # broker id节点ID, 0 表示 master, 其他的正整数表示 slave,不能小于0 brokerId=0 # Broker服务地址 String 内部使用填内网ip,如果是需要给外部使用填公网ip brokerIP1=127.0.0.1 # Broker角色 brokerRole=ASYNC_MASTER # 刷盘方式 flushDiskType=ASYNC_FLUSH # 在每天的什么时间删除已经超过文件保留时间的 commit log,默认值04 deleteWhen=04 # 以小时计算的文件保留时间 默认值72小时 fileReservedTime=72 # 是否允许Broker 自动创建Topic,建议线下开启,线上关闭 autoCreateTopicEnable=true # 是否允许Broker自动创建订阅组,建议线下开启,线上关闭 autoCreateSubscriptionGroup=true diskMaxUsedSpaceRatio=95
|
配置的 brokerIP1 是本地 IP 地址 。
还有一个技巧:我们也可以将 brokerIP1 配置成 host.docker.internal , 并且配置本地 Host 。
这样可以避免切换网络环境时,需要重新配置 brokerIP1 的问题。
7 启动broker
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| docker run -d \ --name rmqbroker \ --restart=always \ --link rmqnamesrv:namesrv \ -p 10911:10911 -p 10909:10909 \ --privileged=true \ -v /opt/module/docker/rocketmq/broker/logs:/home/rocketmq/logs \ -v /opt/module/docker/rocketmq/broker/store:/home/rocketmq/store \ -v /opt/module/docker/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf \ -e "MAX_POSSIBLE_HEAP=200000000" \ -e "MAX_HEAP_SIZE=512M" \ -e "HEAP_NEWSIZE=256M" \ -e "NAMESRV_ADDR=namesrv:9876" \ apache/rocketmq \ sh mqbroker -c /home/rocketmq/broker.conf
|
8 下载监控镜像
1 2
| docker pull apacherocketmq/rocketmq-dashboard:latest
|
9 启动监控
1 2 3 4 5
| docker run -p 8081:8080 --name rocketmq-console -d \ --restart=always \ --link rmqnamesrv:namesrv \ -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876" \ -t apacherocketmq/rocketmq-dashboard
|