Docker快速搭建RocketMQ

老徐用业余时间维护了一个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。