新聞中心
本篇內(nèi)容主要講解“不安裝docker怎么構(gòu)建docker鏡像”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“不安裝docker怎么構(gòu)建docker鏡像”吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了筠連免費建站歡迎大家使用!
前提
docker
容器鏡像倉庫
這里舉例可以公用的兩個
dockerhub
阿里云容器鏡像服務(wù)
前言
本文主要介紹的是google開源的一個java領(lǐng)域的docker構(gòu)建工具jib.
目前在github上的start有8.5k,fork有784,是一款非常方便的java領(lǐng)域docker構(gòu)建工具.
亮點是不需要Docker daemon,意味著即使本地沒有安裝docker也能通過jib構(gòu)建docker鏡像,并且可以構(gòu)建符合OCI規(guī)范的鏡像.
官方支持三種方式:
maven插件
grade插件
jib代碼庫
本文使用的是springboot項目通過maven插件的方式進行講述.
講一下第三種,jib代碼庫,這種方式可以用于自研平臺構(gòu)建java的docker服務(wù).
配置pom.xml
添加下面這段標準標簽到文件中
...
com.google.cloud.tools
jib-maven-plugin
2.0.0
registry.cn-hangzhou.aliyuncs.com/dragonwell/dragonwell8:8.1.1-GA_alpine_x86_64_8u222-b67
imageName
...
上述內(nèi)容配置了一個結(jié)果鏡像名稱imageName
,也就是最終構(gòu)建成的docker鏡像地址,包含容器倉庫地址/鏡像名稱:版本號
例如registry.cn-beijing.aliyuncs.com/lyp/lanbox:v1.0
,如果倉庫地址不填則默認為dockerhub.
另外還配置了一個基礎(chǔ)鏡像registry.cn-hangzhou.aliyuncs.com/dragonwell/dragonwell8:8.1.1-GA_alpine_x86_64_8u222-b67
,可以認為等同于Dockerfile中的From語句.
如果基礎(chǔ)鏡像或目標鏡像需要賬號密碼的話,在from標簽或to標簽添加一個認證信息即可,有三種方式:
配置在docker的配置文件中
配置在maven的setting.xml中
直接在pom.xml文件配置
本文使用第三種,即在from標簽或to標簽下添加一個用于認證信息的auth標簽,例如:
...
kafeidou
kafeidou
...
也可以方便的通過環(huán)境變量的方式進行配置:
...
${env.REGISTRY_FROM_USERNAME}
${env.REGISTRY_FROM_PASSWORD}
...
其中${env.}
這一部分是固定的,后面跟著實際環(huán)境變量.
還可以通過系統(tǒng)屬性的方式:
mvn compile jib:build \
-Djib.to.image=myregistry/myimage:latest \
-Djib.to.auth.username=kafeidou \
-Djib.to.auth.password=kafeidou
在進行構(gòu)建時通過參數(shù)方式傳遞認證信息,是不是很方便呢?
繼續(xù)看configuration
下的標簽有container
配置:
這個標簽主要配置目標容器相關(guān)的內(nèi)容,比如:
appRoot -> 放置應(yīng)用程序的根目錄,用于war包項目
args -> 程序額外的啟動參數(shù).
environment -> 用于容器的環(huán)境變量
format -> 構(gòu)建OCI規(guī)范的鏡像
jvmFlags -> JVM參數(shù)
mainClass -> 程序啟動類
ports -> 容器開放端口
...
還有其他內(nèi)容具體可以參考https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#container-object.
有一個注意點是阿里的容器鏡像服務(wù)不支持OCI鏡像,所以如果選擇使用阿里的容器鏡像服務(wù)記得將OCI格式取消,默認是取消的.
另外,JVM參數(shù)可以通過環(huán)境變量配置動態(tài)內(nèi)容,所以不需要計劃將所有啟動參數(shù)寫死在jvmFlags
標簽里面.
例如啟動容器時指定使用G1回收器,docker run -it -e JAVA_TOOL_OPTIONS="-XX:+UseG1GC" -d registry.cn-beijing.aliyuncs.com/lyp/lanbox:v1.0
.
所有配置項完成后運行mvn命令mvn compile jib:build
開始構(gòu)建docker鏡像.
如果看到類似這樣的信息說明就成功了:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 42.598 s
[INFO] Finished at: 2020-02-18T23:30:53+08:00
[INFO] ------------------------------------------------------------------------
到此,相信大家對“不安裝docker怎么構(gòu)建docker鏡像”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享題目:不安裝docker怎么構(gòu)建docker鏡像
文章位置:http://fisionsoft.com.cn/article/gcppjh.html