国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker基礎(chǔ)(鏡像的結(jié)構(gòu),Dockerfile語(yǔ)法介紹,基于Ubuntu鏡像來(lái)構(gòu)建一個(gè)Java應(yīng)用)

這篇具有很好參考價(jià)值的文章主要介紹了Docker基礎(chǔ)(鏡像的結(jié)構(gòu),Dockerfile語(yǔ)法介紹,基于Ubuntu鏡像來(lái)構(gòu)建一個(gè)Java應(yīng)用)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

鏡像

鏡像結(jié)構(gòu)

要想自己構(gòu)建鏡像,必須先了解鏡像的結(jié)構(gòu)。

鏡像之所以能讓我們快速跨操作系統(tǒng)部署應(yīng)用而忽略其運(yùn)行環(huán)境、配置,就是因?yàn)殓R像中包含了程序運(yùn)行需要的系統(tǒng)函數(shù)庫(kù)、環(huán)境、配置、依賴(lài)。

因此,自定義鏡像本質(zhì)就是依次準(zhǔn)備好程序運(yùn)行的基礎(chǔ)環(huán)境、依賴(lài)、應(yīng)用本身、運(yùn)行配置等文件,并且打包而成。

我們要從0部署一個(gè)Java應(yīng)用,大概流程是這樣:

  • 準(zhǔn)備一個(gè)linux服務(wù)(CentOS或者Ubuntu均可)

  • 安裝并配置JDK

  • 上傳Jar包

  • 運(yùn)行jar包

我們打包鏡像也是分成這么幾步:

  • 準(zhǔn)備Linux運(yùn)行環(huán)境(java項(xiàng)目并不需要完整的操作系統(tǒng),僅僅是基礎(chǔ)運(yùn)行環(huán)境即可)

  • 安裝并配置JDK

  • 拷貝jar包

  • 配置啟動(dòng)腳本

上述步驟中的每一次操作其實(shí)都是在生產(chǎn)一些文件(系統(tǒng)運(yùn)行環(huán)境、函數(shù)庫(kù)、配置最終都是磁盤(pán)文件),所以鏡像就是一堆文件的集合。

但需要注意的是,鏡像文件不是隨意堆放的,而是按照操作的步驟分層疊加而成,每一層形成的文件都會(huì)單獨(dú)打包并標(biāo)記一個(gè)唯一id,稱(chēng)為Layer)。這樣,如果我們構(gòu)建時(shí)用到的某些層其他人已經(jīng)制作過(guò),就可以直接拷貝使用這些層,而不用重復(fù)制作。

Dockerfile

由于制作鏡像的過(guò)程中,需要逐層處理和打包,比較復(fù)雜,所以Docker就提供了自動(dòng)打包鏡像的功能。我們只需要將打包的過(guò)程,每一層要做的事情用固定的語(yǔ)法寫(xiě)下來(lái),交給Docker去執(zhí)行即可。

而這種記錄鏡像結(jié)構(gòu)的文件就稱(chēng)為Dockerfile

指令 說(shuō)明 示例
FROM 指定基礎(chǔ)鏡像 FROM centos:6
ENV 設(shè)置環(huán)境變量,可在后面指令使用 ENV key value
COPY 拷貝本地文件到鏡像的指定目錄 COPY ./xx.jar /tmp/app.jar
RUN 執(zhí)行Linux的shell命令,一般是安裝過(guò)程的命令 RUN yum install gcc
EXPOSE 指定容器運(yùn)行時(shí)監(jiān)聽(tīng)的端口,是給鏡像使用者看的 EXPOSE 8080
ENTRYPOINT 鏡像中應(yīng)用的啟動(dòng)命令,容器運(yùn)行時(shí)調(diào)用 ENTRYPOINT java -jar xx.jar

例如,要基于Ubuntu鏡像來(lái)構(gòu)建一個(gè)Java應(yīng)用,其Dockerfile內(nèi)容如下:

# 指定基礎(chǔ)鏡像
FROM ubuntu:16.04
# 配置環(huán)境變量,JDK的安裝目錄、容器內(nèi)時(shí)區(qū)
ENV JAVA_DIR=/usr/local
ENV TZ=Asia/Shanghai
# 拷貝jdk和java項(xiàng)目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar
# 設(shè)定時(shí)區(qū)
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 安裝JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8
# 配置環(huán)境變量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin
# 指定項(xiàng)目監(jiān)聽(tīng)的端口
EXPOSE 8080
# 入口,java項(xiàng)目的啟動(dòng)命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

我們?cè)诖嘶A(chǔ)上制作java鏡像,就可以省去JDK的配置了:

# 基礎(chǔ)鏡像
FROM openjdk:11.0-jre-buster
# 設(shè)定時(shí)區(qū)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷貝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-829608.html

到了這里,關(guān)于Docker基礎(chǔ)(鏡像的結(jié)構(gòu),Dockerfile語(yǔ)法介紹,基于Ubuntu鏡像來(lái)構(gòu)建一個(gè)Java應(yīng)用)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker自定義java鏡像(解決java:8鏡像不支持arm64/aarch64的問(wèn)題)(附帶Dockerfile參數(shù)介紹)

    Docker自定義java鏡像(解決java:8鏡像不支持arm64/aarch64的問(wèn)題)(附帶Dockerfile參數(shù)介紹)

    arm64/aarch64的云服務(wù)器、已經(jīng)安裝好docker、已經(jīng)安裝好對(duì)應(yīng)版本且可以使用的jdk、服務(wù)器上有該jdk的安裝包 (如:jdk-8u311-linux-aarch64.tar.gz) #打包鏡像 注意有后綴 . Dockerfile的命令A(yù)DD:將宿主機(jī)目錄下的文件拷貝進(jìn)鏡像且ADD命令會(huì)自動(dòng)處理URL和解壓tar壓縮包 (1)基礎(chǔ) 每一條保留

    2024年02月09日
    瀏覽(25)
  • dockerfile避坑筆記(VMWare下使用Ubuntu在Ubuntu20.04基礎(chǔ)鏡像下docker打包多個(gè)go項(xiàng)目)

    dockerfile避坑筆記(VMWare下使用Ubuntu在Ubuntu20.04基礎(chǔ)鏡像下docker打包多個(gè)go項(xiàng)目)

    docker是一種方便跨平臺(tái)遷移應(yīng)用的程序,通過(guò)docker可以實(shí)現(xiàn)在同一類(lèi)操作系統(tǒng)中,如Ubuntu和RedHat兩個(gè)linux操作系統(tǒng)中,實(shí)現(xiàn)程序的跨平臺(tái)部署。比如我在Ubuntu中打包了一個(gè)go項(xiàng)目的docker鏡像(鏡像為二進(jìn)制文件,相當(dāng)于windows中的exe文件),這個(gè)鏡像可以直接在另一臺(tái)Ubuntu上運(yùn)

    2024年02月05日
    瀏覽(23)
  • docker Alpine鏡像介紹(基礎(chǔ)鏡像)

    docker Alpine鏡像介紹(基礎(chǔ)鏡像)

    https://hub.docker.com/_/alpine https://github.com/alpinejs/alpine Alpine鏡像 是一個(gè)基于Alpine Linux發(fā)行版構(gòu)建的Docker鏡像。Alpine Linux是一個(gè)輕量級(jí)的Linux發(fā)行版,它的目標(biāo)是提供一個(gè)安全、簡(jiǎn)單、高效的操作系統(tǒng)。Alpine Linux采用了musl libc和BusyBox來(lái)最小化系統(tǒng)的大小,并且使用了自己的包管理

    2024年02月13日
    瀏覽(36)
  • 騰訊云輕量應(yīng)用鏡像、系統(tǒng)鏡像、Docker基礎(chǔ)鏡像、自定義鏡像和共享鏡像介紹

    騰訊云輕量應(yīng)用鏡像、系統(tǒng)鏡像、Docker基礎(chǔ)鏡像、自定義鏡像和共享鏡像介紹

    騰訊云輕量應(yīng)用服務(wù)器鏡像類(lèi)型分為應(yīng)用鏡像、系統(tǒng)鏡像、Docker基礎(chǔ)鏡像、自定義鏡像和共享鏡像,騰訊云百科txybk.com來(lái)詳細(xì)說(shuō)下不同鏡像類(lèi)型說(shuō)明和詳細(xì)介紹: 騰訊云輕量應(yīng)用服務(wù)器 應(yīng)用鏡像:獨(dú)有的應(yīng)用鏡像除了包含底層的操作系統(tǒng)外,還封裝了應(yīng)用軟件(如LAMP、Wor

    2024年02月06日
    瀏覽(15)
  • 《Docker極簡(jiǎn)教程》--Dockerfile--Dockerfile的基本語(yǔ)法

    Dockerfile是一種文本文件,用于定義Docker鏡像的內(nèi)容和構(gòu)建步驟。它包含一系列指令,每個(gè)指令代表一個(gè)構(gòu)建步驟,從基礎(chǔ)鏡像開(kāi)始,逐步構(gòu)建出最終的鏡像。通過(guò)Dockerfile,用戶(hù)可以精確地描述應(yīng)用程序運(yùn)行環(huán)境的配置、依賴(lài)項(xiàng)安裝、文件復(fù)制等操作。這使得應(yīng)用程序的部署

    2024年02月20日
    瀏覽(20)
  • Docker定制鏡像(Dockerfile)

    Docker定制鏡像(Dockerfile)

    ???????? dockerfile 是用來(lái)構(gòu)建 docker 鏡像的 命令參數(shù)腳本 文件。 ????????鏡像的定制實(shí)際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構(gòu)建、操作的命令都寫(xiě)入一個(gè)腳本,用這個(gè)腳本來(lái)構(gòu)建、定制鏡像,那么之前提及的無(wú)法重復(fù)的問(wèn)題、

    2024年02月07日
    瀏覽(29)
  • 【docker】dockerfile構(gòu)建鏡像

    【docker】dockerfile構(gòu)建鏡像

    Dockerfile 是一個(gè)文本文件,文件中包含了一條條的指令(instruction),用于構(gòu)建鏡像。每一條指定構(gòu)建一層鏡像,因此每一條指令的內(nèi)容,就是描述該層鏡像應(yīng)當(dāng)如何構(gòu)建。 1、dockerfile是 自定義鏡像 的一套規(guī)則 2、dockerfile由多條指令構(gòu)成,dockerfile的每一條指令都會(huì)對(duì)應(yīng)于do

    2024年02月05日
    瀏覽(28)
  • 【docker】Dockerfile自定義鏡像

    【docker】Dockerfile自定義鏡像

    ???? ?????個(gè)人主頁(yè): 五敷有你 ? ? ?? ???系列專(zhuān)欄: 中間件 ??穩(wěn)中求進(jìn),曬太陽(yáng) 常見(jiàn)的鏡像在DockerHub就能找到,但是我們自己寫(xiě)的項(xiàng)目就必須自己構(gòu)建鏡像了。 而要自定義鏡像,就必須先了解鏡像的結(jié)構(gòu)才行。 鏡像是將應(yīng)用程序及其需要的系統(tǒng)函數(shù)庫(kù)、環(huán)境、配

    2024年04月15日
    瀏覽(31)
  • Docker | 使用Dockerfile制作鏡像

    Docker | 使用Dockerfile制作鏡像

    ?作者簡(jiǎn)介:大家好,我是Leo,熱愛(ài)Java后端開(kāi)發(fā)者,一個(gè)想要與大家共同進(jìn)步的男人???? ??個(gè)人主頁(yè):Leo的博客 ??當(dāng)前專(zhuān)欄:Docker系列 ?特色專(zhuān)欄: MySQL學(xué)習(xí) ??本文內(nèi)容: Docker | 使用Dockerfile制作鏡像 ??個(gè)人知識(shí)庫(kù): [Leo知識(shí)庫(kù)]https://gaoziman.gitee.io/blogs/),歡迎大家訪

    2024年02月04日
    瀏覽(96)
  • docker (八)-dockerfile制作鏡像

    docker (八)-dockerfile制作鏡像

    dockerfile通常包含以下幾個(gè)常用命令: FROM ? 打包使用的基礎(chǔ)鏡像 WORKDIR?? 相當(dāng)于cd命令,進(jìn)入工作目錄 COPY ? 將宿主機(jī)的文件復(fù)制到容器內(nèi) RUN?? 打包時(shí)執(zhí)行的命令,相當(dāng)于打包過(guò)程中在容器中執(zhí)行shell腳本,通常用來(lái)安裝應(yīng)用程序所需要的依賴(lài)、設(shè)置權(quán)限、初始化配置文件

    2024年02月21日
    瀏覽(96)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包