docker下安装rocketMQ
安装NameServer
拉取镜像并启动(以挂载配置文件等到宿主机的形式启动)
1
2
3
4
5
6
7
8
9
10
11
12
13废弃:
docker run -d -p 9876:9876 \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-namesrv/logs:/root/logs \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-namesrv/store:/root/store \
--name rmqserver foxiswho/rocketmq:server-4.5.1
改(20211221):
docker run -d -p 9876:9876 \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-namesrv/logs:/opt/logs \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-namesrv/store:/opt/store \
--name rmqserver4.5.1 foxiswho/rocketmq:server-4.5.1
安装broker
拉取镜像并启动(以挂载配置文件等到宿主机的形式启动)
注:首先要在宿主机路径下创建好broker.conf文件
路径:/Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/conf/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27废弃:
docker run -d -p 10911:10911 -p 10909:10909 \
--name rmqbroker \
--link rmqserver:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/conf/broker.conf:/etc/rocketmq/broker.conf \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/logs:/root/logs \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/store:/root/store \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/store:/opt/store \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/conf/broker.conf:/opt/rocketmq-4.5.1/conf/broker.conf \
foxiswho/rocketmq:broker-4.5.1
改(20211221):
docker run -d -p 10911:10911 -p 10909:10909 \
--name rmqbroker4.5.1 \
--link rmqserver4.5.1:namesrv \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m" \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/logs:/opt/logs \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/store:/opt/store \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/conf/broker.conf:/etc/rocketmq/broker.conf \
-v /Users/ux/Applications/docker/rocketmq4.5/rocketmq-broker/conf/broker.conf:/opt/rocketmq-4.5.1/conf/broker.conf \
foxiswho/rocketmq:broker-4.5.1
rocketmq console 可视化控制台
拉取镜像(可缺省步骤):
1
docker pull styletang/rocketmq-console-ng
运行容器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14废弃:
docker run -d --name rmqconsole -p 8180:8080 \
--link rmqserver:namesrv \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-t apacherocketmq/rocketmq-console:2.0.0
改(20211221):
docker run -d --name rmqconsole2_4.5.1 -p 8180:8080 \
--link rmqserver4.5.1:namesrv \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-t apacherocketmq/rocketmq-console:2.0.0运行容器(其他镜像源):
1
2
3
4
5
6
7
8
9
10##其他镜像源
-t styletang/rocketmq-console-ng
##没什么卵用 --link rmqbroker:rmqbroker \
docker run -d --name rmqconsole -p 8180:8080 \
--link rmqserver:namesrv \
--link rmqbroker:rmqbroker \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-t apacherocketmq/rocketmq-console:2.0.0
当NameServer和broker、console都分别以docker容器运行的时候,需要增加broker.conf配置
brokerIP1和namesrvAddr配置【直接拷贝,替换ip即可】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69# 配置为brokerIP1=127.0.0.1,如果namesrv,broker和console都安装在docker,会造成console访问不到namesrv
# brokerIP1=127.0.0.1
# brokerIP1=192.168.2.1
# brokerIP1=192.168.31.94
# 注释掉,mq会正常,【可能】自动创建topic会失效,即namesrv和broker通信失败,【实测后发现不配置也正常自动创建】
# namesrvAddr=127.0.0.1:9876
# namesrvAddr=192.168.2.1:9876
# namesrvAddr=192.168.31.94:9876
# ---------------------------------说明----------------------------------------------------
# 注意:
# 如果不配置brokerIP1,则会使用docker内部分配的ip,即172.17.0.3这种,外部系统调用mq服务,是调用不到的;
# 如果配置brokerIP1=127.0.0.1,如果外部系统调用mq服务,也是调用不到的。
# 如果不配置namesrvAddr,诸如autoCreateTopicEnable配置为true时,可能不#会生效的。
# 如果namesrvAddr配置为:namesrvAddr=127.0.0.1:9876,则在console里是看不到namesrv服务的。
# ---------------------------------broker启动日志,观察连接的namesrv---------------------------
# broker启动日志:
# The broker[6c357964d9e9, 192.168.2.1:10911] boot success. serializeType=JSON and name # # server is 192.168.2.1:9876
# The broker[6c357964d9e9, 192.168.2.1:10911] boot success. serializeType=JSON and name # # server is 127.0.0.1:9876
# The broker[6c357964d9e9, 192.168.2.1:10911] boot success. serializeType=JSON and name # # server is namesrv:9876
# ---------------------------------以docker的通信隔离为基础去思考即可---------------------------
# ---------------------------------docker中原始broker.conf begin--------------------------
# sh-4.2# cat /etc/rocketmq/broker.conf
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## brokerClusterName = DefaultCluster
## brokerName = broker-a
## brokerId = 0
## deleteWhen = 04
## fileReservedTime = 48
## brokerRole = ASYNC_MASTER
## flushDiskType = ASYNC_FLUSH
# ---------------------------------docker中原始broker.conf end--------------------------
brokerClusterName = DefaultCluster
brokerName = broker-MAC
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# ---------------------------------docker中原始broker.conf--------------------------
## 新增配置
brokerIP1=192.168.31.94
namesrvAddr=192.168.31.94:9876