Docker安装RocketMQ
docker部署rocketmq
- 拉取rocketmq镜像
docker pull apache/rocketmq:5.3.2
- 为容器创建共享网络
docker network create rocketmq
- 启动NameServer
docker run -d --name rmqnamesrv -p 9876:9876 -v /data/docker/rocketmq/namesrv/logs:/home/rocketmq/logs --network rocketmq apache/rocketmq:5.3.2 sh mqnamesrv
注意:添加数据映射:-v /data/docker/rocketmq/namesrv/logs:/home/rocketmq/logs
- 查看NameServer启动是否成功
docker logs -f rmqnamesrv
当我们从 namesrv.log 中看到 ‘The Name Server boot success…’ 时,表示 NameServer 已经成功启动。
- 在/data/docker/rocketmq/namesrv/logs路径下创建broker.conf文件,并添加以下内容:
brokerIP1=宿主机IP
- 启动broker
docker run -d \
--name rmqbroker \
--network rocketmq \
-p 10912:10912 -p 10911:10911 -p 10909:10909 \
-p 8085:8080 -p 8086:8081 \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
-v /data/docker/rocketmq/namesrv/logs/broker.conf:/home/rocketmq/rocketmq-5.3.2/conf/broker.conf \
apache/rocketmq:5.3.2 sh mqbroker --enable-proxy \
-c /home/rocketmq/rocketmq-5.3.2/conf/broker.conf
注意:
-
namesrv和broker均在rocketmq网络
-
-e "NAMESRV_ADDR=rmqnamesrv:9876"中rmqnamesrv为nameserver容器的名称
-
查看broker启动是否成功
docker exec -it rmqbroker bash -c "tail -n 10 /home/rocketmq/logs/rocketmqlogs/proxy.log"
当我们从 proxy.log 中看到 ‘The broker[brokerName,ip:port] boot success…’ 时,表示 Broker 已经成功启动。
- 拉取rocketmq-dashboard镜像
docker pull apacherocketmq/rocketmq-dashboard:latest
- 启动rocketmq-dashboard镜像
docker run -d --name rocketmq-dashboard --network rocketmq -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876" -p 8087:8080 -t apacherocketmq/rocketmq-dashboard:latest
注意:"JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876"中rmqnamesrv为nameserver容器名称
- rockermq-dashboard启动成功