在docker中安装RocketMQ

第一步你需要有镜像包,这个2023年的时候docker就不能用pull拉取镜像了,需要你自己找

第二步我用的是FinalShell,用别的可视化界面也用,

在你自己平时放镜像包的地方创建一个叫rocketmq的文件夹,放入镜像包后,创建一个叫Dockerfile的文件,进入文件把下面的代码写入

cd /opt/rocketmq
touch Dockerfile
vim Dockerfile
# 使用本地的 openjdk 8 镜像作为基础镜像
FROM openjdk:8

# 设置工作目录
WORKDIR /opt/rocketmq

# 复制 RocketMQ 的压缩包到容器内的工作目录
COPY rocketmq-all-4.9.3-bin-release.zip .

# 解压 RocketMQ 压缩包
RUN apt-get update && \
    apt-get install -y unzip && \
    unzip rocketmq-all-4.9.3-bin-release.zip && \
    rm rocketmq-all-4.9.3-bin-release.zip && \
    apt-get purge -y unzip && \
    apt-get autoremove -y && \
    rm -rf /var/lib/apt/lists/*

# 设置环境变量
ENV ROCKETMQ_HOME=/opt/rocketmq/rocketmq-all-4.9.3-bin-release
ENV PATH=$PATH:$ROCKETMQ_HOME/bin

# 暴露 RocketMQ 的端口(根据实际需要调整)
EXPOSE 9876 10911 10909

# 启动命令(这里只是示例,你可能需要根据实际情况调整)
CMD ["sh", "-c", "cd $ROCKETMQ_HOME/bin && nohup sh mqnamesrv & nohup sh mqbroker -n localhost:9876 & tail -f /dev/null"]

 

然后就是打包成镜像

docker build -t rocketmq:4.9.3 .

在之后打包容器

docker run -d \
--name rmqnamesrv \
-p 9876:9876 \
-v /home/rocketmq/data/namesrv/logs:/root/logs \
-v /home/rocketmq/data/namesrv/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
rocketmq:4.9.3

用下面的命令就可以查看创建好的容器和镜像

docker ps//查看容器

docker images //查看镜像

红色箭头就是我们的镜像和容器

这个如果你虚拟机关了,再次重启时就会处于处于 Exited 状态,用下面的命令重启一下就行

docker rm rocketmq-console rmqbroker rmqnamesrv
docker run -d --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 -v /home/rocketmq/data/broker/logs:/root/logs -v /home/rocketmq/data/broker/store:/root/store -v /home/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --privileged=true -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmq:4.9.3 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker 名称,master 和 slave 使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0 表示 Master,大于 0 表示不同的 slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨 4 点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示 Master 和 Slave
之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH 表示同步刷盘和异步刷盘;SYNC_FLUSH
消息写入磁盘后才返回成功状态,ASYNC_FLUSH 不需要;
flushDiskType = ASYNC_FLUSH
# 设置 broker 节点所在服务器的 ip 地址
brokerIP1 = 192.168.27.128
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值