亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

不安裝docker怎么構建docker鏡像

發布時間:2021-08-27 16:35:58 來源:億速云 閱讀:189 作者:chen 欄目:云計算

本篇內容主要講解“不安裝docker怎么構建docker鏡像”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“不安裝docker怎么構建docker鏡像”吧!

前提

  1. docker

  2. 容器鏡像倉庫

    這里舉例可以公用的兩個
    dockerhub
    阿里云容器鏡像服務

前言

本文主要介紹的是google開源的一個java領域的docker構建工具jib.

目前在github上的start有8.5k,fork有784,是一款非常方便的java領域docker構建工具.

亮點是不需要Docker daemon,意味著即使本地沒有安裝docker也能通過jib構建docker鏡像,并且可以構建符合OCI規范的鏡像.

官方支持三種方式:

  1. maven插件

  2. grade插件

  3. jib代碼庫

本文使用的是springboot項目通過maven插件的方式進行講述.

講一下第三種,jib代碼庫,這種方式可以用于自研平臺構建java的docker服務.

配置pom.xml

添加下面這段標準標簽到文件中

<build>
   <plugins>
     ...
     <plugin>
       <groupId>com.google.cloud.tools</groupId>
       <artifactId>jib-maven-plugin</artifactId>
       <version>2.0.0</version>
       <configuration>
         <from>
                     <image>registry.cn-hangzhou.aliyuncs.com/dragonwell/dragonwell8:8.1.1-GA_alpine_x86_64_8u222-b67</image>
                   </from>
         <to>
           <image>imageName</image>
         </to>
       </configuration>
     </plugin>
     ...
   </plugins>
 </build>

上述內容配置了一個結果鏡像名稱imageName,也就是最終構建成的docker鏡像地址,包含容器倉庫地址/鏡像名稱:版本號例如registry.cn-beijing.aliyuncs.com/lyp/lanbox:v1.0,如果倉庫地址不填則默認為dockerhub.

另外還配置了一個基礎鏡像registry.cn-hangzhou.aliyuncs.com/dragonwell/dragonwell8:8.1.1-GA_alpine_x86_64_8u222-b67,可以認為等同于Dockerfile中的From語句.

如果基礎鏡像或目標鏡像需要賬號密碼的話,在from標簽或to標簽添加一個認證信息即可,有三種方式:

  1. 配置在docker的配置文件中

  2. 配置在maven的setting.xml中

  3. 直接在pom.xml文件配置

本文使用第三種,即在from標簽或to標簽下添加一個用于認證信息的auth標簽,例如:

<from>
 ...
 <auth>
   <username>kafeidou</username>
   <password>kafeidou</password>
 <auth>
 ...
</from>

也可以方便的通過環境變量的方式進行配置:

<from>
 ...
 <auth>
   <username>${env.REGISTRY_FROM_USERNAME}</username>
   <password>${env.REGISTRY_FROM_PASSWORD}</password>
 <auth>
 ...
</from>

其中${env.}這一部分是固定的,后面跟著實際環境變量.

還可以通過系統屬性的方式:

mvn compile jib:build \
   -Djib.to.image=myregistry/myimage:latest \
   -Djib.to.auth.username=kafeidou \
   -Djib.to.auth.password=kafeidou

在進行構建時通過參數方式傳遞認證信息,是不是很方便呢?

繼續看configuration下的標簽有container配置:
這個標簽主要配置目標容器相關的內容,比如:

  1. appRoot -> 放置應用程序的根目錄,用于war包項目

  2. args -> 程序額外的啟動參數.

  3. environment -> 用于容器的環境變量

  4. format -> 構建OCI規范的鏡像

  5. jvmFlags -> JVM參數

  6. mainClass -> 程序啟動類

  7. ports -> 容器開放端口
    ...
    還有其他內容具體可以參考https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#container-object.

有一個注意點是阿里的容器鏡像服務不支持OCI鏡像,所以如果選擇使用阿里的容器鏡像服務記得將OCI格式取消,默認是取消的.

另外,JVM參數可以通過環境變量配置動態內容,所以不需要計劃將所有啟動參數寫死在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 開始構建docker鏡像.

如果看到類似這樣的信息說明就成功了:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  42.598 s
[INFO] Finished at: 2020-02-18T23:30:53+08:00
[INFO] ------------------------------------------------------------------------

到此,相信大家對“不安裝docker怎么構建docker鏡像”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴和县| 内江市| 上高县| 永城市| 蒙阴县| 息烽县| 弥渡县| 当涂县| 北安市| 渭南市| 革吉县| 白朗县| 高淳县| 保定市| 南澳县| 吉水县| 民乐县| 思南县| 平乐县| 郧西县| 方正县| 军事| 伊吾县| 铁力市| 大丰市| 米林县| 大田县| 繁峙县| 台山市| 凤山县| 原阳县| 上饶县| 济阳县| 洞口县| 灵石县| 大名县| 南岸区| 大化| 柏乡县| 新密市| 雅安市|