一、RocketMQ
1、查询rocketMQ的镜像
$ sudo docker search rocketmq
2、拉取star最多的rocketmqinc/rocketmq镜像
$ sudo docker pull rocketmqinc/rocketmq
3、创建nameserv服务实例
宿主机上创建挂载的目录
$ sudo mkdir /mydata/rocketmq
创建实例,并把相关目录挂载在宿主机上
$ sudo docker run -d -p 9876:9876 \
--name rmqnamesrv \
-v /mydata/rocketmq/data/namesrv/logs:/root/logs \
-v /mydata/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv
docker的9876端口映射到宿主机的9876端口上 {-p 宿主机端口:docker端口 }
dcoker的实例名rmqnamesrv {--name docker实例名}
docker的文件夹挂载到宿主机的对应文件上 { -v 宿主机文件:docker文件夹}
查看运行中的实例:
$ sudo docker ps
4、创建broker服务实例
首先在 /mydata/rocketmq/文件夹下创建文件conf/broker.conf
$ sudo mkdir conf
$ sudo vi broker.conf
broker.conf内容如下:
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.56.10
注意:其中"brokerIP1 = 192.168.56.10"中的ip地址是我宿主机的地址,请修改成自己宿主机的ip地址
创建broker服务实例
$ sudo docker run -d -p 10911:10911 -p 10909:10909 \
--name rmqbroker \
-v /mydata/rocketmq/data/broker/logs:/root/logs \
-v /mydata/rocketmq/data/broker/store:/root/store \
-v /mydata/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf \
--link rmqnamesrv:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker \
-c /opt/rocketmq/conf/broker.conf
查看docker实例
$ sudo docker ps
5、设置容器实例自启动
设置rmqnamesrv容器实例自启动:
$ sudo docker update rmqnamesrv --restart=always
设置rmqbroker容器实例自启动:
$ sudo docker update rmqbroker --restart=always
6、RocketMQ控制台安装与使用
拉取控制台镜像styletang/rocketmq-console-ng
$ sudo docker pull styletang/rocketmq-console-ng
创建控制台styletang/rocketmq-console-ng实例并启动
$ sudo docker run --link rmqnamesrv:rmqnamesrv \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.56.10:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8001:8080 -t styletang/rocketmq-console-ng
注意:其中JAVA_OPTS中的ip地址是我宿主机的地址,请修改成自己宿主机的ip地址;
效果:
完成!