前言
汤姆猫也是找了半天安装教程,发现各个教程有些参数都不一样,再看看评价有些还报错没安装成功。然后也不知道安装新版本有些参数是不是变化了,挂载文件是不是变化了。直到我去docker仓库看rocketmq版本,才发现官网有提供docker安装过程。这下子就不用担心参数和版本更新问题了吧,然后我再手把手教,仔细到不能仔细了,内容也跟着官网走还搞不定?我立马去跟哥哥学打篮球。
我们开始吧
1.获取官网安装文件
Docker仓库地址:
https://registry.hub.docker.com/
搜索 foxiswho/rocketmq 点进去
往下拉
说真的,蔡徐坤原来那么好一孩子,当时都被你们黑疯了,真的不明白,何必对他这么大恶意,真心感谢官方
接下来我们复制仓库地址用idea拉下来:https://github.com/foxiswho/docker-rocketmq.git
我们来看看目录:
2.修改官方的安装文件
修改内容:
- 挂载文件路径
- 虚拟机内存大小
- 网络配置
- 修改启动文件
挂载文件路径
volumes就是-v:配置挂载路径
:前的路径就是我们要挂载到我们服务器的地方, :后的就是要从容器里面拿文件的地方
这里我们修改成我们自定义的路径
修改虚拟机内存大小
这里修改成你需要的大小,我是学习使用,用的轻量级服务器,都改成128m,这个后面可以修改
修改网络配置
这个也是官网一直提醒的:
看着也懵懵懂懂,大概意思就是 Docker是有网络模式的,如果你有创建自己的网络组,把rmqnamesrv、rmqbroker和rmqconsole 三个容器都加到同一个网络组,就不用把 把broker.conf中的 #brokerIP1=192.168.0.253 前面#号去掉。别慌,简单,继续看下来,这也是我们要修改的内容
官网提供的compose文件是新建一个网络组,然后3个docker容器都加到一个网络组,这样3个容器在同一个网络,就可以直接相互请求,不需要开放: brokerIP1=192.168.0.253
那对于我们有自己的网络组的呢,我们就要加入我们的网络组,修改一下这些:
修改启动文件
这些看到命令就知道意思了吧,
- 创建本地的存放文件,路径就是我们前面说到的 volumes : 前的路径
- 给这些文件夹加权限
3.开始安装咯,不复杂,别怕,只是严谨操作
首先,格式化一下启动文件,然后执行
给 启动文件 加权限
chmod 777 start.sh
因为我们在windows创建的,linux的文件不同,先格式化一下
sed -i "s/\r//" start.sh
然后运行,内容就是创建我们的存放文件和加权限
./start.sh
接下来,我们再把配置文件放到我们上面自定义的配置文件路径
注意:
为什么这样做的,因为docker的问题,挂载的具体文件要提前在本地创建好,不然docker会生成 成文件夹
接下来就是up compose文件啦
这里是使用docker compose方式,也超级无敌简单,docker compose要提前安装,朋友们搜一下安装就好了,这里就不提供了
docker-compose -f docker-compose.yml up -d
搞定了
访问一下测试看看
完美结束,朋友们还有不懂或者我哪里有问题麻烦私信留言一下,感谢,溜了
我的安装文件
docker-compose.yml:
version: '3.5'
services:
rmqnamesrv:
image: foxiswho/rocketmq:4.8.0
# image: registry.cn-hangzhou.aliyuncs.com/foxiswho/rocketmq:4.7.0
container_name: rmqnamesrv
ports:
- 9876:9876
volumes:
- /home/projectData/rocketmq/namesrv/logs:/home/rocketmq/logs
- /home/projectData/rocketmq/namesrv/store:/home/rocketmq/store
environment:
JAVA_OPT_EXT: "-Duser.home=/home/rocketmq -Xms128M -Xmx128M -Xmn128m"
command: ["sh","mqnamesrv"]
networks:
- env_carrynet
rmqbroker:
image: foxiswho/rocketmq:4.8.0
# image: registry.cn-hangzhou.aliyuncs.com/foxiswho/rocketmq:4.7.0
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
volumes:
- /home/projectData/rocketmq/broker/logs:/home/rocketmq/logs
- /home/projectData/rocketmq/broker/store:/home/rocketmq/store
- /home/projectData/rocketmq/broker/brokerconf/broker.conf:/etc/rocketmq/broker.conf
environment:
JAVA_OPT_EXT: "-Duser.home=/home/rocketmq -Xms128M -Xmx128M -Xmn128m"
command: ["sh","mqbroker","-c","/etc/rocketmq/broker.conf","-n","rmqnamesrv:9876","autoCreateTopicEnable=true"]
depends_on:
- rmqnamesrv
networks:
- env_carrynet
rmqconsole:
image: styletang/rocketmq-console-ng
container_name: rmqconsole
ports:
- 8180:8080
environment:
JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
depends_on:
- rmqnamesrv
networks:
- env_carrynet
networks:
env_carrynet:
external: true
start.sh:
#!/usr/bin/env bash
# 创建目录
mkdir -p /home/projectData/rocketmq/namesrv/logs
mkdir -p /home/projectData/rocketmq/namesrv/store
mkdir -p /home/projectData/rocketmq/broker/logs
mkdir -p /home/projectData/rocketmq/broker/store
mkdir -p /home/projectData/rocketmq/broker/brokerconf #添加配置文件夹
# 设置目录权限
chmod -R 777 /home/projectData/rocketmq/namesrv/logs
chmod -R 777 /home/projectData/rocketmq/namesrv/store
chmod -R 777 /home/projectData/rocketmq/broker/logs
chmod -R 777 /home/projectData/rocketmq/broker/store
chmod -R 777 /home/projectData/rocketmq/broker/brokerconf #添加配置文件夹
# 下载并启动容器,且为 后台 自动启动
#docker-compose up -d
#
#
## 显示 rocketmq 容器
#docker ps |grep rocketmq