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

docker高級(DockerFile解析)

這篇具有很好參考價值的文章主要介紹了docker高級(DockerFile解析)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、構(gòu)建三步驟

·編寫Dockerfile文件
·docker build命令構(gòu)建鏡像
·docker run依鏡像運行容器實例

2、DockerFile構(gòu)建過程解析

·Dockerfile內(nèi)容基礎知識
·1:每條保留字指令都必須為大寫字母且后面要跟隨至少一個參數(shù)
·2:指令按照從上到下,順序執(zhí)行
·3:#表示注釋
·4:每條指令都會創(chuàng)建一個新的鏡像層并對鏡像進行提交
·Docker執(zhí)行Dockerfile的大致流程
·(1)docker從基礎鏡像運行一個容器
·(2)執(zhí)行一條指令并對容器作出修改
·(3)執(zhí)行類似docker commit的操作提交一個新的鏡像層
·(4)docker再基于剛提交的鏡像運行一個新容器
·(5)執(zhí)行dockerfile中的下一條指令直到所有指令都執(zhí)行完成

從應用軟件的角度來看,Dockerfile、Docker鏡像與Docker容器分別代表軟件的三個不同階段,

  • Dockerfile是軟件的原材料
  • Docker鏡像是軟件的交付品
  • Docker容器則可以認為是軟件鏡像的運行態(tài),也即依照鏡像運行的容器實例
    Dockerfile面向開發(fā),Docker鏡像成為交付標準,Docker容器則涉及部署與運維,三者缺一不可,合力充當Docker體系的基石。

1 Dockerfile,需要定義一個Dockerfile,Dockerfile定義了進程需要的一切東西。Dockerfile涉及的內(nèi)容包括執(zhí)行代碼或者是文件、環(huán)境變量、依賴包、運行時環(huán)境、動態(tài)鏈接庫、操作系統(tǒng)的發(fā)行版、服務進程和內(nèi)核進程(當應用進程需要和系統(tǒng)服務和內(nèi)核進程打交道,這時需要考慮如何設計namespace的權(quán)限控制)等等;

2 Docker鏡像,在用Dockerfile定義一個文件之后,docker build時會產(chǎn)生一個Docker鏡像,當運行 Docker鏡像時會真正開始提供服務;

3 Docker容器,容器是直接提供服務的。

3、DockerFile常用保留字指令

·FROM
·基礎鏡像,當前新鏡像是基于哪個鏡像的,指定一個已經(jīng)存在的鏡像作為模板,第一條必須from

MAINTAINER
·鏡像維護者的姓名和郵箱地址

·RUN
·容器構(gòu)建時需要運行的命令
·兩種格式
·shell格式

RUN yum -y install vim
	exec格式

docker高級(DockerFile解析),docker,eureka,java

·RUN是在 docker build時運行

·EXPOSE
·當前容器對外暴露出的端口

·WORKDIR
·指定在創(chuàng)建容器后,終端默認登陸的進來工作目錄,一個落腳點

·USER
·指定該鏡像以什么樣的用戶去執(zhí)行,如果都不指定,默認是root

·ENV
·用來在構(gòu)建鏡像過程中設置環(huán)境變量

ENV MY_PATH /usr/mytest
這個環(huán)境變量可以在后續(xù)的任何RUN指令中使用,這就如同在命令前面指定了環(huán)境變量前綴一樣;
也可以在其它指令中直接使用這些環(huán)境變量,

比如:WORKDIR $MY_PATH

·ADD
·將宿主機目錄下的文件拷貝進鏡像且會自動處理URL和解壓tar壓縮包

·COPY
·類似ADD,拷貝文件和目錄到鏡像中。 將從構(gòu)建上下文目錄中 <源路徑> 的文件/目錄復制到新的一層的鏡像內(nèi)的 <目標路徑> 位置

·COPY src dest
·COPY [“src”, “dest”]
·<src源路徑>:源文件或者源目錄
·<dest目標路徑>:容器內(nèi)的指定路徑,該路徑不用事先建好,路徑不存在的話,會自動創(chuàng)建。

·VOLUME
·容器數(shù)據(jù)卷,用于數(shù)據(jù)保存和持久化工作

·CMD
·指定容器啟動后的要干的事情

·Dockerfile 中可以有多個 CMD 指令,但只有最后一個生效,CMD 會被 docker run 之后的參數(shù)替換

·它和前面RUN命令的區(qū)別
·CMD是在docker run 時運行。
·RUN是在 docker build時運行。

·ENTRYPOINT
·也是用來指定一個容器啟動時要運行的命令
·類似于 CMD 指令,但是ENTRYPOINT不會被docker run后面的命令覆蓋, 而且這些命令行參數(shù)會被當作參數(shù)送給 ENTRYPOINT 指令指定的程序

ENTRYPOINT可以和CMD一起用,一般是變參才會使用 CMD ,這里的 CMD 等于是在給 ENTRYPOINT 傳參。
當指定了ENTRYPOINT后,CMD的含義就發(fā)生了變化,不再是直接運行其命令而是將CMD的內(nèi)容作為參數(shù)傳遞給ENTRYPOINT指令

·在執(zhí)行docker run的時候可以指定 ENTRYPOINT 運行所需的參數(shù)。
·注意
·如果 Dockerfile 中如果存在多個 ENTRYPOINT 指令,僅最后一個生效。

docker高級(DockerFile解析),docker,eureka,java

4、自定義鏡像mycentosjava8

·要求
·Centos7鏡像具備vim+ifconfig+jdk8

·JDK的下載鏡像地址
·官網(wǎng)

下載地址:
https://www.oracle.com/java/technologies/downloads/#java8

·編寫
·準備編寫Dockerfile文件

FROM centos:7
MAINTAINER zzyy
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安裝vim編輯器
RUN yum -y install vim
#安裝ifconfig命令查看網(wǎng)絡IP
RUN yum -y install net-tools
#安裝java8及l(fā)ib庫
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#ADD 是相對路徑jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安裝包必須要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java環(huán)境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash

·docker build -t 新鏡像名字:TAG .

docker build -t centosjava8:1.5 .

·注意,上面TAG后面有個空格,有個點
·運行
·docker run -it 新鏡像名字:TAG

 docker run -it centosjava8:1.5 /bin/bash

5、再體會下UnionFS(聯(lián)合文件系統(tǒng))

UnionFS(聯(lián)合文件系統(tǒng)):Union文件系統(tǒng)(UnionFS)是一種分層、輕量級并且高性能的文件系統(tǒng),它支持對文件系統(tǒng)的修改作為一次提交來一層層的疊加,同時可以將不同目錄掛載到同一個虛擬文件系統(tǒng)下(unite several directories into a single virtual filesystem)。Union 文件系統(tǒng)是 Docker 鏡像的基礎。鏡像可以通過分層來進行繼承,基于基礎鏡像(沒有父鏡像),可以制作各種具體的應用鏡像。
特性:一次同時加載多個文件系統(tǒng),但從外面看起來,只能看到一個文件系統(tǒng),聯(lián)合加載會把各層文件系統(tǒng)疊加起來,這樣最終的文件系統(tǒng)會包含所有底層的文件和目錄

·虛懸鏡像
倉庫名、標簽都是的鏡像,俗稱dangling image

·Dockerfile寫一個

vim Dockerfile

from ubuntu
CMD echo 'action is sucess'

#構(gòu)建
docker build .

docker高級(DockerFile解析),docker,eureka,java
查看

docker image ls -f dangling=true

刪除

docker image prune

虛懸鏡像已經(jīng)失去存在價值,可以刪除

docker高級(DockerFile解析),docker,eureka,java

總結(jié)

docker高級(DockerFile解析),docker,eureka,java文章來源地址http://www.zghlxwxcb.cn/news/detail-686390.html

到了這里,關于docker高級(DockerFile解析)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【Docker】5、Dockerfile 自定義鏡像(鏡像結(jié)構(gòu)、Dockerfile 語法、把 Java 項目弄成鏡像)

    【Docker】5、Dockerfile 自定義鏡像(鏡像結(jié)構(gòu)、Dockerfile 語法、把 Java 項目弄成鏡像)

    鏡像結(jié)構(gòu) Dockerfile 語法 構(gòu)建 Java 項目 ① 之前使用的鏡像都是 DockerHub 官方提供的 ② 開發(fā)者需要將自己的微服務制作為鏡像 鏡像 是由 應用程序 及其需要的 系統(tǒng)函數(shù)庫 、 環(huán)境 、 配置 、 依賴 打包而成。 ?? 鏡像是 分層結(jié)構(gòu) ,每一層稱為一個 Layer 1?? BaseImage 層:包含基

    2024年02月03日
    瀏覽(17)
  • Docker DockerFile部署java jar項目包,以及Mysql,Redis

    Docker DockerFile部署java jar項目包,以及Mysql,Redis

    Docker 運行環(huán)境要求系統(tǒng)為 64 位、 Linux 系統(tǒng)內(nèi)核版本為 ?3.8 以上 1.1 搭建gcc環(huán)境 (gcc是編程語言譯器) yum -y install gcc yum -y install gcc-c++ 1.2 安裝需要的軟件包 yum install -y yum-utils 1.3 裝鏡像倉庫 因為docker的服務器是在國外, 所以有時候從倉庫中下載鏡像的時候會連接被拒絕或者連

    2024年02月05日
    瀏覽(44)
  • 探索Docker-Compose:從基礎到高級命令全解析

    探索Docker-Compose:從基礎到高級命令全解析

    在當今的軟件開發(fā)過程中, 容器化 已成為一種重要的技術趨勢。它允許開發(fā)者將應用及其所有依賴項打包在一起,確保應用在各種環(huán)境中都能一致地運行。 Docker 作為容器化技術的代表,提供了一個輕量級、便捷的平臺來創(chuàng)建、部署和運行容器化應用。然而,當我們需要管理

    2024年01月18日
    瀏覽(32)
  • 【jenkins】idea+jenkins+docker+dockerfile+compose流水線部署java應用

    【jenkins】idea+jenkins+docker+dockerfile+compose流水線部署java應用

    目錄 整體架構(gòu) 環(huán)境準備 安裝docker以及docker-compose jenkins安裝 maven安裝 portainer面板安裝 sonarqube安裝? 在項目中增加dockerfile和compose.yml腳本 ?Dockerfile腳本內(nèi)容 compose.yml腳本內(nèi)容 jenkins安裝必要插件 jenkins增加流水線任務 增加pipeline任務job ?增加pipeline腳本 WXWork Notification Plugin?

    2024年02月16日
    瀏覽(54)
  • Docker基礎(鏡像的結(jié)構(gòu),Dockerfile語法介紹,基于Ubuntu鏡像來構(gòu)建一個Java應用)

    要想自己構(gòu)建鏡像,必須先了解鏡像的結(jié)構(gòu)。 鏡像之所以能讓我們快速跨操作系統(tǒng)部署應用而忽略其運行環(huán)境、配置,就是因為鏡像中包含了程序運行需要的系統(tǒng)函數(shù)庫、環(huán)境、配置、依賴。 因此,自定義鏡像本質(zhì)就是依次準備好程序運行的基礎環(huán)境、依賴、應用本身、運

    2024年02月20日
    瀏覽(25)
  • 【Java】微服務——Docker容器部署(docker安裝,docker配置鏡像加速,DockerHub,docker基本操作,Dockerfile自定義鏡像.Docker-Compose)

    【Java】微服務——Docker容器部署(docker安裝,docker配置鏡像加速,DockerHub,docker基本操作,Dockerfile自定義鏡像.Docker-Compose)

    微服務雖然具備各種各樣的優(yōu)勢,但服務的拆分通用給部署帶來了很大的麻煩。 分布式系統(tǒng)中,依賴的組件非常多,不同組件之間部署時往往會產(chǎn)生一些沖突。 在數(shù)百上千臺服務中重復部署,環(huán)境不一定一致,會遇到各種問題 1.1.1.應用部署的環(huán)境問題 大型項目組件較多,運

    2024年02月04日
    瀏覽(33)
  • Docker自定義java鏡像(解決java:8鏡像不支持arm64/aarch64的問題)(附帶Dockerfile參數(shù)介紹)

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

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

    2024年02月09日
    瀏覽(24)
  • DockerFile文件詳細解析

    DockerFile文件詳細解析

    所有文章不設限,我們相遇偶然,相散坦然,互不打擾,各自安好,向陽而生 致敬尚硅谷周陽老師,此處內(nèi)容遷移學習來自于陽哥! DockerFile是用來構(gòu)建Docker鏡像的文本文件,是一條條構(gòu)建鏡像所需要的指令和參數(shù)構(gòu)成的腳本 編寫DockerFile文件 Docker build命令構(gòu)建鏡像 docker r

    2024年02月08日
    瀏覽(17)
  • 六、Dockerfile解析

    課前思考: 分別準備好兩個已經(jīng)寫好的.net 程序與springboot程序, 如何讓這兩個程序在docker 中運行呢? Dockerfile 是用來構(gòu)建Docker鏡像的構(gòu)建文件 ,是由一系列命令和參數(shù)構(gòu)成的腳本。 構(gòu)造三個步驟 1.編寫Dockerfile文件 2.編譯:docker build 3.生成容器:docker run .... 1.每條保留字指

    2024年02月05日
    瀏覽(18)
  • 探索高級UI、源碼解析與性能優(yōu)化,了解開源框架及Flutter,助力Java和Kotlin筑基,揭秘NDK的魅力!

    鏈接: https://pan.baidu.com/s/13cR0Ip6lzgFoz0rcmgYGZA?pwd=y7hp 提取碼: y7hp 復制這段內(nèi)容后打開百度網(wǎng)盤手機App,操作更方便哦 --來自百度網(wǎng)盤超級會員v4的分享 ??【01】Java筑基:全方位指南帶你從入門到進階,打造堅實的Java基礎!?? ??【02】Kotlin:深入淺出,揭示Kotlin的奇妙之處,讓

    2024年02月12日
    瀏覽(12)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包