欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用DockerFile構(gòu)建鏡像與鏡像上傳的實(shí)現(xiàn)步驟

 更新時(shí)間:2024年02月23日 11:35:30   作者:云村小威  
本文主要介紹了使用DockerFile構(gòu)建鏡像與鏡像上傳的實(shí)現(xiàn)步驟,使用Dockerfile好處是自動(dòng)化構(gòu)建,確保環(huán)境的一致性和可重復(fù)性,跟蹤構(gòu)建過(guò)程的演化等,文中通過(guò)圖文講解的非常詳細(xì),需要的朋友可以參考下

前言:為什么要使用Dockerfile ?

首先Dockerfile 是一個(gè)文本格式的配置文件, 用戶可以使用 Dockerfile 來(lái)快速創(chuàng)建自定義的鏡像。在沒(méi)使用Dockerfile之前構(gòu)建鏡像是這樣的:一步一步操作

不使用Dockerfile的劣勢(shì):

  • 手動(dòng)操作容易出錯(cuò),難以保證一致性。
  • 構(gòu)建過(guò)程不透明,不易維護(hù)和管理。
  • 需要手動(dòng)執(zhí)行多個(gè)步驟,容易遺漏或出現(xiàn)問(wèn)題。

使用Dockerfile的好處:

  • 自動(dòng)化構(gòu)建,確保環(huán)境的一致性和可重復(fù)性。
  • 可以使用版本控制系統(tǒng)管理Dockerfile,跟蹤構(gòu)建過(guò)程的演化。
  • 通過(guò)簡(jiǎn)單的命令就能完成構(gòu)建和運(yùn)行。

一、DockerFile構(gòu)建鏡像

1、構(gòu)建基礎(chǔ)對(duì)象

已知構(gòu)建基礎(chǔ)鏡像的目的是為了在容器中提供一個(gè)運(yùn)行環(huán)境,以便在其基礎(chǔ)上構(gòu)建和運(yùn)行應(yīng)用程序。而CentOSAlpine都是常見(jiàn)的基礎(chǔ)操作系統(tǒng)鏡像,用于構(gòu)建Docker容器。它們有一些區(qū)別和各自的優(yōu)點(diǎn),主要涉及到鏡像大小、軟件包管理系統(tǒng)和適用場(chǎng)景等方面。

CentOS鏡像:

  • 鏡像大?。?/strong> CentOS鏡像通常比Alpine鏡像大,因?yàn)樗烁嗟南到y(tǒng)庫(kù)和工具。
  • 軟件包管理: CentOS使用yum(Yellowdog Updater, Modified)作為其軟件包管理系統(tǒng)。它有廣泛的軟件倉(cāng)庫(kù),可以方便地安裝各種軟件包。
  • 系統(tǒng)庫(kù): CentOS提供了完整的系統(tǒng)庫(kù)和工具,適合那些需要更多系統(tǒng)級(jí)功能和工具的場(chǎng)景。
  • 適用場(chǎng)景: 適用于需要在容器中運(yùn)行更龐大、復(fù)雜的應(yīng)用程序,或者依賴于CentOS特定庫(kù)的場(chǎng)景。例如,一些企業(yè)級(jí)應(yīng)用可能更適合在CentOS環(huán)境中運(yùn)行。

Alpine鏡像:

  • 鏡像大?。?/strong> Alpine鏡像非常小巧,通常比CentOS小得多。這是因?yàn)锳lpine使用了musl libc和BusyBox,精簡(jiǎn)了系統(tǒng)組件。
  • 軟件包管理: Alpine使用apk作為其軟件包管理系統(tǒng)。雖然軟件包數(shù)量相對(duì)較少,但它足夠輕量且足夠滿足大多數(shù)基本需求。
  • 系統(tǒng)庫(kù): Alpine精簡(jiǎn)了系統(tǒng)庫(kù),只包含最小必需的庫(kù),這有助于減小鏡像大小。
  • 適用場(chǎng)景: 適用于對(duì)鏡像大小要求較高,或者在輕量級(jí)、敏捷的場(chǎng)景中運(yùn)行應(yīng)用程序。Alpine常被用作構(gòu)建微服務(wù)、容器化應(yīng)用和云原生應(yīng)用的基礎(chǔ)鏡像。

總結(jié)各自優(yōu)點(diǎn):

  • CentOS:
    • 適合需要完整系統(tǒng)庫(kù)和工具的應(yīng)用場(chǎng)景。
    • 更廣泛的軟件包支持。
    • 適用于相對(duì)較大和復(fù)雜的應(yīng)用程序。
  • Alpine:
    • 非常小巧的鏡像大小。
    • 適用于對(duì)鏡像大小要求較高的場(chǎng)景。
    • 適用于輕量級(jí)、敏捷的應(yīng)用場(chǎng)景,如微服務(wù)和云原生應(yīng)用。

選擇CentOS還是Alpine通常取決于具體的應(yīng)用需求和容器使用場(chǎng)景。如果鏡像大小是關(guān)鍵因素,而且應(yīng)用可以在Alpine的輕量環(huán)境中運(yùn)行,那么Alpine可能是更好的選擇。如果應(yīng)用需要更完整的系統(tǒng)環(huán)境和軟件包支持,那么CentOS可能更合適。

2、Dockerfile文件結(jié)構(gòu)

Dockerfile 由一行行命令語(yǔ)句組成,并且支持以 # 開(kāi)頭的注釋行。

一般Dockerfile 分為四部分:基礎(chǔ)鏡像信息、維護(hù)者信息、鏡像操作指令和容器啟動(dòng)時(shí)執(zhí)行指令。

部分命令
基礎(chǔ)鏡像信息FROM
維護(hù)者信息MAINTAINER
鏡像操作指令RUN、ENV、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、 VOLUME等
容器啟動(dòng)時(shí)執(zhí)行指 令CMD、ENTRYPOINT

基礎(chǔ)鏡像信息:

定義了構(gòu)建過(guò)程中使用的基礎(chǔ)鏡像?;A(chǔ)鏡像是構(gòu)建新鏡像的起點(diǎn),包含了操作系統(tǒng)和基本的運(yùn)行時(shí)環(huán)境。FROM指令是Dockerfile的第一條指令,必須出現(xiàn)在Dockerfile的最開(kāi)始。

維護(hù)者信息:

用于指定Docker鏡像的維護(hù)者信息,即負(fù)責(zé)維護(hù)該鏡像的人或團(tuán)隊(duì)。這個(gè)信息可以提供一些聯(lián)系方式或者簡(jiǎn)要的說(shuō)明。

鏡像操作指令:

這些指令用于在構(gòu)建過(guò)程中對(duì)鏡像進(jìn)行操作。其中,ENV用于設(shè)置環(huán)境變量,COPY用于復(fù)制文件或目錄到鏡像中,ADD與COP作用差不多,它還會(huì)壓縮包文件進(jìn)行解壓,WORKDIR設(shè)置工作目錄,RUN用于在構(gòu)建過(guò)程中執(zhí)行命令,EXPOSE用于聲明容器運(yùn)行時(shí)需要暴露的端口,USER用于設(shè)置在容器中運(yùn)行時(shí)使用的用戶名或用戶ID,ONBUILD用于在構(gòu)建子鏡像時(shí)執(zhí)行一些命令,VOLUME用于聲明容器中的掛載點(diǎn),可以將宿主機(jī)上的目錄或文件掛載到容器中,用于持久化存儲(chǔ)數(shù)據(jù)。這樣可以保證在容器刪除后數(shù)據(jù)不會(huì)丟失。

容器啟動(dòng)時(shí)執(zhí)行指令:

定義了容器啟動(dòng)時(shí)執(zhí)行的默認(rèn)命令。該命令可以被用戶指定的命令覆蓋。CMD指令通常是最后一條指令,如果有多個(gè)CMD指令,只有最后一條會(huì)生效。

ENTRYPOINTCMD不同,ENTRYPOINT指定的命令不會(huì)被docker run命令行中的參數(shù)覆蓋,而是作為容器的主要執(zhí)行命令。 

以上這些指令一起構(gòu)成了Dockerfile,定義了構(gòu)建鏡像的過(guò)程和鏡像的運(yùn)行時(shí)行為。通過(guò)這些指令,可以靈活地配置和定制Docker鏡像,以適應(yīng)不同的應(yīng)用場(chǎng)景。

3、構(gòu)建Dockerfile文件鏡像

準(zhǔn)備需要上傳的文件:

 1、構(gòu)建Dockerfile:

#1.指定基礎(chǔ)鏡像,并且必須是第一條指令
FROM jeanblanchard/alpine-glibc 
#2.指明該鏡像的作者和其電子郵件
MAINTAINER  "3315757094@qq.com"
#3.在構(gòu)建鏡像時(shí),指定鏡像的工作目錄,之后的命令都是基于此工作目錄,如果不存在,則會(huì)創(chuàng)建目錄
WORKDIR /test
#4.復(fù)制需要運(yùn)行的應(yīng)用程序
COPY spring.jar /test
#5.一個(gè)復(fù)制命令,把jdk安裝文件復(fù)制到鏡像中,注意:jdk*.tar.gz使用的是相對(duì)路徑
ADD jre-8u391-linux-x64.tar.gz /test
#6.配置環(huán)境變量
ENV JAVA_HOME=/test/jre1.8.0_391
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
#7.容器啟動(dòng)時(shí)需要執(zhí)行的命令
CMD  java -jar spring.jar 

2、配置好Dockerfiel文件后開(kāi)始構(gòu)建鏡像 :

3、運(yùn)行鏡像:

測(cè)試:

二、鏡像上傳(阿里云)

上傳鏡像就是為了方便各位同事更好的搬磚,步驟如下:

1、注冊(cè)/登錄阿里云搜索容器鏡像服務(wù) 

2、點(diǎn)擊實(shí)例模塊創(chuàng)建倉(cāng)庫(kù)

...

...

3、創(chuàng)建好后就會(huì)有操作指南(復(fù)制操作就行)

當(dāng)然要上傳鏡像需要獲取訪問(wèn)憑證進(jìn)行登錄:

 示例:

1. 登錄

2.給本地的Docker鏡像打標(biāo)簽,使其與阿里云容器鏡像服務(wù)相關(guān)聯(lián)

根據(jù)tag(版本)推送:

拉?。?/strong>

docker pull registry.cn-hangzhou.aliyuncs.com/ycxw320/spring_test:v1 [鏡像版本號(hào)]

以上就是使用DockerFile構(gòu)建鏡像與鏡像上傳的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于DockerFile構(gòu)建鏡像與鏡像上傳的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 一文詳解如何在Ubuntu系統(tǒng)中安裝docker

    一文詳解如何在Ubuntu系統(tǒng)中安裝docker

    這篇文章主要為大家詳細(xì)介紹了在Ubuntu操作系統(tǒng)上安裝Docker的步驟,以便我們可以開(kāi)始使用Docker來(lái)構(gòu)建和運(yùn)行容器化應(yīng)用程序,希望對(duì)大家有所幫助
    2024-03-03
  • 詳解如何獲取docker容器(container)的ip地址

    詳解如何獲取docker容器(container)的ip地址

    這篇文章主要介紹了詳解如何獲取docker容器(container)的ip地址,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • docker images,info,-d等命令報(bào)錯(cuò)的解決方法

    docker images,info,-d等命令報(bào)錯(cuò)的解決方法

    最近剛接觸Docker,所以在學(xué)習(xí)的過(guò)程中出現(xiàn)了好多的問(wèn)題,百度上不好找,谷歌的話,樓主不會(huì)翻墻。后來(lái)通過(guò)各方求助和細(xì)心研究解決了一些遇到的問(wèn)題,現(xiàn)在將遇到的問(wèn)題和解決方法分享給大家,有需要的朋友們可以參考借鑒。
    2016-11-11
  • docker安裝MinIO全過(guò)程

    docker安裝MinIO全過(guò)程

    這篇文章主要介紹了docker安裝MinIO全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解使用 Docker 構(gòu)建 LNMP 環(huán)境

    詳解使用 Docker 構(gòu)建 LNMP 環(huán)境

    本篇文章主要介紹了使用 Docker 構(gòu)建 LNMP 環(huán)境,詳細(xì)的介紹了配置LNMP 環(huán)境的步驟。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Docker守護(hù)進(jìn)程安全配置項(xiàng)目詳解

    Docker守護(hù)進(jìn)程安全配置項(xiàng)目詳解

    這篇文章主要介紹了Docker守護(hù)進(jìn)程安全配置介紹,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Docker數(shù)據(jù)卷與攔截以及目錄攔截詳解

    Docker數(shù)據(jù)卷與攔截以及目錄攔截詳解

    在Docker中可以使用數(shù)據(jù)卷目錄掛載來(lái)將主機(jī)上的目錄與容器內(nèi)的目錄進(jìn)行映射,下面這篇文章主要給大家介紹了關(guān)于Docker數(shù)據(jù)卷與攔截以及目錄攔截的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 詳解用Docker構(gòu)建MySQL主從環(huán)境

    詳解用Docker構(gòu)建MySQL主從環(huán)境

    這篇文章主要介紹了詳解用Docker構(gòu)建MySQL主從環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 已有docker鏡像構(gòu)建過(guò)程分析(使用示例)

    已有docker鏡像構(gòu)建過(guò)程分析(使用示例)

    docker history命令用于查看指定鏡像的歷史層信息,它顯示了鏡像創(chuàng)建過(guò)程中的每一層,包括創(chuàng)建時(shí)間、創(chuàng)建者、大小和注釋等信息,本文介紹已有docker鏡像構(gòu)建過(guò)程分析,感興趣的朋友一起看看吧
    2024-12-12
  • Docker Buildx構(gòu)建多平臺(tái)鏡像的實(shí)現(xiàn)

    Docker Buildx構(gòu)建多平臺(tái)鏡像的實(shí)現(xiàn)

    本文主要介紹了Docker Buildx構(gòu)建多平臺(tái)鏡像的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論