Docker安装RocketMQ 4.8

1拉取4.8镜像

docker pull foxiswho/rocketmq:4.8.0

拉取控制台镜像

docker pull styletang/rocketmq-console-ng

2创建rocketmq使用的共有网络,便于相互访问

docker network create rocketmq_network

3启动rmqnamesrv

docker run -d --name rmqnamesrv --network rocketmq_network -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" -p 9876:9876 foxiswho/rocketmq:4.8.0 sh mqnamesrv

–name rmqnamesrv:指定容器名称为rmqnamesrv,注意这个名字,后续会使用。

–network rocketmq_network:为容器指定网络为rocketmq_network,同一网络下的容器能够通过容器名称互通。

4启动rmqbroker

创建映射日志文件夹 赋予权限

mkdir -p /data/docker/rocketmq/logs
 chmod 777 logs

创建映射配置文件/data/docker/rocketmq/conf/broker.conf 编辑文件内容 broker.conf

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
mesrvAddr = 66.88.14.183:9876
brokerIP1 = 66.88.14.183
listenPort = 10911

这里ip需要换成自己的ip

启动rmqbroker

docker run -d --name rmqbroker --network rocketmq_network  --privileged=true  -v /data/docker/rocketmq/logs:/home/rocketmq/logs/rocketmqlogs  -v    /data/docker/rocketmq/conf/broker.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf -e "NAMESRV_ADDR=rmqnamesrv:9876" -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" -p 10911:10911 -p 10912:10912 -p 10909:10909 foxiswho/rocketmq:4.8.0 sh mqbroker autoCreateTopicEnable=true -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf

–privileged=true:如果使用-v映射了目录,则使用该参数获取文件访问权限

(容器之间可以通过容器名称链接)
验证容器之间是否互通:# 进入broker容器

docker exec -it rmqbroker /bin/bash

ping name-server的容器名称

ping rmqnamesrv

5启动rmqconsole

docker run -d --name rmqconsole --network rocketmq_network --link rmqnamesrv:rmqnamesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8180:8080 -t styletang/rocketmq-console-ng

访问8180端口 出现下图搭建成功
如果失败 进去rmqbroker容器中 查看下日志 并且查询是否 ping rmqnamesrv 通容器
在这里插入图片描述

<think>好的,用户想在Mac上通过Docker安装RocketMQ,我需要根据提供的引用内容整理步骤。首先,查看用户提供的引用资料,引用[1]和[2]提到了使用rocketmq-docker仓库,而引用[4]提到了另一个仓库foxiswho/docker-rocketmq。需要注意不同仓库的步骤可能不同。用户可能使用的是M1芯片的Mac,引用[2]和[3]提到M1版本的兼容性问题,可能需要特别处理。 首先,确定用户是否需要针对M1芯片的步骤。根据引用[2],M1用户需要重新构建镜像,使用特定的命令。而引用[3]则使用docker-compose文件启动服务。需要分两种情况:普通Mac和M1 Mac。 然后,整理步骤。引用[1]和[2]的步骤包括克隆仓库、构建镜像,而引用[4]的仓库可能步骤不同。用户的问题可能更倾向于官方的方法,所以优先考虑引用[1]和[2]的流程。同时,docker-compose的方式可能更方便,如引用[3]提到的yml文件。 需要注意版本问题,比如在构建镜像时指定版本和基础镜像,如引用[2]中的例子。同时,检查是否需要修改配置文件或端口映射,确保服务可访问,如引用[3]提到的管理界面地址。 最后,验证安装是否成功,包括查看容器状态和访问控制台。可能的问题包括端口未正确映射或镜像不兼容,需提醒用户注意。</think>### 如何在 Mac 上使用 Docker 安装 RocketMQ? #### **步骤 1:克隆官方镜像仓库** 根据不同的环境选择以下两种方式之一: 1. **普通 Mac(非 M1 芯片)** 使用官方推荐的镜像仓库: ```bash git clone https://github.com/apache/rocketmq-docker.git cd rocketmq-docker/image-build ``` 2. **M1/M2 芯片 Mac** 需要重新构建兼容 ARM 架构的镜像[^2]: ```bash git clone https://github.com/apache/rocketmq-docker.git cd rocketmq-docker/image-build sh build-image.sh 4.8.0 alpine # 版本和基础镜像可根据需求调整 ``` --- #### **步骤 2:启动 RocketMQ 服务** 使用 `docker-compose` 快速部署(需提前安装 DockerDocker Compose): 1. 创建 `rocketmq.yml` 文件(示例配置): ```yaml version: '3' services: namesrv: image: apache/rocketmq:4.8.0 command: sh mqnamesrv ports: - 9876:9876 broker: image: apache/rocketmq:4.8.0 command: sh mqbroker -n namesrv:9876 ports: - 10909:10909 - 10911:10911 environment: - JAVA_OPT_EXT=-server -Xms1g -Xmx1g -Xmn512m depends_on: - namesrv dashboard: image: apacherocketmq/rocketmq-dashboard:latest ports: - 8181:8080 environment: - JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 depends_on: - namesrv ``` 2. 启动容器: ```bash docker-compose -f rocketmq.yml up -d ``` --- #### **步骤 3:验证安装** 1. 检查容器状态: ```bash docker ps # 应显示 namesrv、broker、dashboard 三个容器 ``` 2. 访问控制台: 打开浏览器输入 `http://localhost:8181`,若看到 RocketMQ 控制台即表示成功[^3]。 --- #### **注意事项** - **M1/M2 兼容性问题**:若无法访问服务,需确保镜像通过 `build-image.sh` 重新构建[^2]。 - **端口冲突**:检查 `9876`、`10911`、`8181` 是否被占用。 - **配置持久化**:可通过挂载卷(如 `-v ./data:/home/rocketmq/data`)实现数据持久化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值