Rocketmq 4.2.0 基于Docker構(gòu)建鏡像

? ? ? ? ? ? ? ? ? ? ? ? Rocketmq 4.2.0 基于Docker構(gòu)建鏡像


一:環(huán)境準(zhǔn)備:

Centos7,Dokcer18.03.1-ce

官方項(xiàng)目地址:https://github.com/apache/incubator-rocketmq-externals?里面有rocketmq的docker運(yùn)行文檔


二:克隆官方項(xiàng)目到本地宿主機(jī):

git?clone https://github.com/apache/rocketmq-externals.git

主要用到rocket-docker中的腳本,分別為rocket4.0.0和4.1.1的dockerfile,鏡像構(gòu)建,和鏡像運(yùn)行腳本,如圖:

注意:克隆下來(lái)的腳本都是不夠權(quán)限的? ? 執(zhí)行chmod+x 腳本名? 給予執(zhí)行權(quán)限

如下分別為namesrv和broker的鏡像構(gòu)建腳本(通過其目錄下的DockerFile構(gòu)建)

sudo docker build --build-arg version=4.2.0 -t apache/incubator-rocketmq-namesrv:4.2.0 .

sudo docker build --build-arg version=4.2.0 -t apache/incubator-rocketmq-broker:4.2.0 .

下面這兩條制定指令為namesrv和broker的運(yùn)行指令

sudo docker run -d -p 9876:9876 -v /data/conf:/opt/conf -v /opt/logs:/opt/logs -v /opt/store:/opt/store --name rmqnamesrv -e "JAVA_OPT_EXT=-server -Xms128m -Xmx256m -Xmn128m" apache/incubator-rocketmq-namesrv:4.2.0

sudo docker run -d -p 10911:10911 -p 10909:10909 -v /data/conf/rocketmq-conf/conf:/opt/rocketmq-4.2.0/conf -v /opt/logs:/opt/logs -v /opt/store:/opt/store --name rmqbroker -e "NAMESRV_ADDR=192.168.60.128:9876" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" apache/incubator-rocketmq-broker:4.2.0


可以看到這里我的rocketmq版本都是4.2.0? rocketmq4.2.0的dockerfile,構(gòu)建腳本,和啟動(dòng)腳本

所以我是基于4.0.0的基礎(chǔ)上改dockerfile和構(gòu)建腳本和啟動(dòng)腳本。其中有幾個(gè)需要注意的點(diǎn):

(圖中為Rocketmq4.0.0的namesrv和broker的Dockerfile)

1:ENV ROCKETMQ_VERSION 4.2.0這里改成我們的rocketmq版本

2:ENV ROCKET_HOME /opt/rocketmq4.2.0 這里同樣改成我們的版本

3:dockerfile里的那個(gè)rocketmq-all-4.2.0-bin-release.zip的下載路徑變了,所以得根據(jù)實(shí)際的下載地址更改

https://dist.apache.org/repos/dist/release/rocketmq/4.2.0/(正確地址)

4:dockerfile中的EXPOPOSE和VOLUME:分別為端口映射和掛載數(shù)卷路徑(配置集群的話根據(jù)情況進(jìn)行修改)

5:設(shè)置時(shí)區(qū),因?yàn)槿萜骼锏臅r(shí)間會(huì)不對(duì)

改完后的namesrv和broke的Dockerfile如下圖:



三:運(yùn)行dockerfile構(gòu)建腳本和運(yùn)行腳本(或者輸入上面的指令)

./docker_build.sh和./docker_run.sh

輸入指令:docker? images? 可以看到生成的相應(yīng)的namesrv和broker鏡像

輸入?docker? ps -a?可以看到所有的docker容器? 指令 docker ps 指令查看正在運(yùn)行的所有docker容器

指令? docker? exec -it 容器ID? bash進(jìn)入容器內(nèi)進(jìn)行操作


四:rocketmq控制臺(tái) (操作很簡(jiǎn)單)

1:拉取鏡像

docker?pull?styletang/rocketmq-console-ng?

2:創(chuàng)建容器

docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8001:8080 -t styletang/rocketmq-console-ng

3、打開控制臺(tái)(界面很炫酷) 本地請(qǐng)?jiān)L問:localhost:8001


結(jié)尾:完整的Dockerfile,docker-compose.yml和使用說明可在我的Github上可以看到.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容