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

Docker容器 - DockerFile詳解

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

目錄

DockerFile

一、是什么

二、構(gòu)建步驟

DockerFile構(gòu)建過程

一、DockerFile基礎(chǔ)

二、Docker執(zhí)行DockerFile的流程

三、總結(jié)

DockerFile常用保留字

零、參考Tomcat的DockerFile

一、FROM

二、MAINTAINER

三、RUN

1.shell

2.exec

四、EXPOSE

五、WORKDIR

六、USER

七、ENV

八、ADD

九、COPY

十、VOLUME

十一、CMD

1.舉個栗子

2.CMD和RUN之間的區(qū)別

十二、ENTRYPOINT

1.舉個栗子

2.優(yōu)點

3.注意

舉例

零、需求和準備

一、編寫Dockerfile文件

二、構(gòu)建

UnionFS聯(lián)合文件系統(tǒng)


DockerFile

一、是什么

DockerFile是用來構(gòu)建Docker鏡像的文本文件,其中包括了一條條構(gòu)建鏡像所需要的指令和參數(shù)。


二、構(gòu)建步驟

編寫DockerFile文件 ---> Docker build構(gòu)建鏡像 ---> Docker run以鏡像運行容器實例。


DockerFile構(gòu)建過程

一、DockerFile基礎(chǔ)

1.每條保留字(至于保留字是什么后面會提)必須為大寫字母且后面要跟隨至少一個參數(shù)

2.指令按照從從上到下,依次執(zhí)行

3.#表示注釋

4.每條指令都會創(chuàng)建一個新的鏡像層,并對鏡像進行提交


二、Docker執(zhí)行DockerFile的流程

1.docker以基礎(chǔ)鏡像運行一個容器

#以鏡像啟動容器,“有了類,才能new一個對象”

2.執(zhí)行一條指令并對容器做出修改

3.執(zhí)行類似于Docker commit的操作提交一個新的鏡像層

4.Docker再基于剛剛提交的鏡像運行一個新的容器

5.執(zhí)行DockerFile中的下一條指令,直到所有指令執(zhí)行完成


三、總結(jié)

從應(yīng)用軟件的角度來看,DockerFile、Docker鏡像與Docker容器分別代表軟件的三個不同階段,可以看做是它的生命周期

1.DockerFile是軟件的原材料

2.Docker鏡像是軟件的交付品

3.Docker容器則可以認為是軟件鏡像的運行態(tài),也即依照鏡像運行的容器實例

DockerFile面向開發(fā),Docker鏡像成為交付標準,Docker容器則涉及部署與運維,三者缺一不可,合力充當Docker體系的基石。

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

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

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

3 Docker容器,容器是直接提供服務(wù)的。


DockerFile常用保留字

零、參考Tomcat的DockerFile

這里去DockerHub中去看看tomcat:Docker Hub

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

然后隨便選一個看看

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

這里可能有人會連不上GitHub,復(fù)制了部分過來。其DockerFile內(nèi)容如下:

...此處省略...

FROM amazoncorretto:8-al2-jdk

ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME

# let "Tomcat Native" live somewhere isolated
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR

# see https://www.apache.org/dist/tomcat/tomcat-10/KEYS
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
ENV GPG_KEYS A9C5DF4D22E99998D9875A5110C01C5A2F6059E7

ENV TOMCAT_MAJOR 10
ENV TOMCAT_VERSION 10.0.23
ENV TOMCAT_SHA512 0e0263e8280f2ccfb4bef916444a6105fef689a3d95c334c8a7bfe59f1e3966d48ea624727f1818a4df331a603f1ac5e21b908dda3cae676ddc1aef90c2d12ab

...內(nèi)容過多,此處省略...

# verify Tomcat Native is working properly
RUN set -eux; \
	nativeLines="$(catalina.sh configtest 2>&1)"; \
	nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"; \
	nativeLines="$(echo "$nativeLines" | sort -u)"; \
	if ! echo "$nativeLines" | grep -E 'INFO: Loaded( APR based)? Apache Tomcat Native library' >&2; then \
		echo >&2 "$nativeLines"; \
		exit 1; \
	fi

EXPOSE 8080
CMD ["catalina.sh", "run"]

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

這里官網(wǎng)上標紅的部分如FROM? ENV? RUN? WORKDIR? EXPOSE? CMD這些就是上面提到的保留字,可以看做是命令關(guān)鍵字。例如最后所提到的

EXPOSE 8080

這也就是tomcat所暴露的默認端口8080。在官網(wǎng)How to use this image.這一節(jié)中有提到:

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

運行默認的Tomcat服務(wù),相當于在啟動后默認添加一段:

CMD ["catalina.sh", "run"]

這一段就來自于剛剛所看的DockerFile的結(jié)尾。


一、FROM

基本上都會出現(xiàn)在DockerFile的第一行。代表你目前的鏡像來自于哪,它的基礎(chǔ)鏡像是什么,有點類似于繼承的哪個父類。比如上面看的Tomcat中的第一行:

FROM amazoncorretto:8-al2-jdk

意思為,他的基礎(chǔ)鏡像是亞馬遜...,然后在此基礎(chǔ)之上添加了下面的內(nèi)容。?


二、MAINTAINER

維護者,用于標注鏡像的作者,和TA的聯(lián)系方式。


三、RUN

容器構(gòu)建時所需要的命令(也就是說DockerFile變成Docker鏡像的build過程中,會讀取你DockerFile中用RUN這個關(guān)鍵字所編寫的命令),一種是shell一種是exec。

1.shell

RUN <命令行命令>
<命令行命令>等同于在終端中的shell命令

例子:

當我們要在容器中添加一個vim功能時,要使用到y(tǒng)um。而以下的命令則是告訴你:在基礎(chǔ)鏡像之上,我們添加了一個安裝vim的功能

RUN yum -y install vim

2.exec

RUN ["可執(zhí)行文件","參數(shù)1","參數(shù)2"]
#RUN ["./123.sh","1","2"] 等價于RUN ./123.sh 1 2

四、EXPOSE

當前容器對外曝露的端口,類似于運行容器時添加的 -p -P 。


五、WORKDIR

在容器創(chuàng)建以后,終端默認登陸進來的工作目錄就是一個落腳點。

舉例:咱們在容器里運行個Ubuntu看看:

docker run -it ubuntu bash

在運行后緊接著pwd查看一下當先位置:

pwd

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

可以看到當前在根目錄,所以說Ubuntu的默認落腳點為自身的根目錄。

咱們換一個看看其它情況(這里故意加了一個bash,以用作演示):

docker run -it -p 8080:8080 tomcat:8 bash

接著pwd:

pwd

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

可以看到這里的落腳點為 /usr/local/tomcat 。

至于為什么咱們的Ubuntu和tomcat的落腳點會不同,就是因為tomcat的DockerFile中用WORKDIR自己定義了一個落腳點。?在后面的七、ENV那塊還會提一嘴。


六、USER

指定該鏡像以什么樣的用戶去執(zhí)行,若不指定,則默認為root。


七、ENV

運行時環(huán)境。用來在構(gòu)建鏡像過程中設(shè)置環(huán)境變量。

再來看看之前看tomcat的DockerFile這張圖:

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

比如這里的:

ENV CATALINA_HOME /usr/local/tomcat

格式有點類似于kv鍵值對,用于定義一個變量并以在后面進行引用。這里的意思是定義了一個CATALINA_HOME變量,它所指的是/usr/local/tomcat的這個路徑。圖中的:

WORKDIR $CATALINA_HOME

?這里是引用了這個CATALINA_HOME變量作為它的落腳點。 也就是上面提到的WORKDIR。這也正是tomcat的落腳點為啥會是/usr/local/tomcat的原因。


八、ADD

將宿主機目錄下的文件拷貝到鏡像。且會自動處理URL和解壓tar壓縮包。相當于下面的COPY加上一個解壓功能。


九、COPY

拷貝文件和目錄到鏡像中。類似于docker基礎(chǔ)命令中的cp。

COPY ["src","dest"]
#src:源文件或源目錄
#dest:容器內(nèi)指定的路徑,若所指定的路徑不存在,則會自動創(chuàng)建好。

十、VOLUME

容器數(shù)據(jù)卷,相當于運行容器時的 -v 。關(guān)于容器數(shù)據(jù)卷的詳解可以查看之間的博客:Docker容器數(shù)據(jù)卷


十一、CMD

指定容器在啟動后要進行的操作。CMDRUN一樣,也同樣支持?shell exec 格式。

CMD <shell命令>
#shell格式

CMD ["可執(zhí)行文件","參數(shù)1","餐數(shù)2"]
#exec格式

CMD ["參數(shù)1","餐數(shù)2","餐數(shù)3"...]
#參數(shù)列表格式

這里新提到的?參數(shù)列表格式?:當在指定了ENTRYPOINT后,CMD用于指定具體參數(shù)。

簡單來說也就是在有了ENTRYPOINT之后,CMD就變成用來給它傳參的了。

一個DockerFile中可以有多個CMD指令,但是只有最后一個會生效。這里我們來看看tomcat的DockerFile最后兩行:

EXPOSE 8080
CMD ["catalina.sh", "run"]

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

先曝露出8080端口,然后最后一行是一個運行操作。若在后面繼續(xù)添加一個CMD,則此處的 CMD ["catalina.sh", "run"] 將會直接失效。

1.舉個栗子

docker run -it -p 8080:8080 tomcat:8 

這回咱們正常啟動,后面沒有加之前bash

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

然后我們?nèi)フTL問8080,可以正??吹皆蹅兊?span style="background-color:#fbd4d0;">貓貓(如果你訪問8080報錯404可以看看這篇:Docker容器安裝Tomcat高版本,解決訪問8080報錯404):

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

這里一切都是正常的。然后咱們?nèi)?span style="background-color:#fbd4d0;">搞點事情。

咱們這回在后面給它加上 /bin/bash

docker run -it -p 8080:8080 tomcat:8 /bin/bash

這就相當于給它的DockerFile多加了一行,變成了以下的樣子:

EXPOSE 8080
CMD ["catalina.sh", "run"]

CMD ["/bin/bash","run"]

咱們這時候再去看看8080的貓貓還在不在:?

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

這時候貓貓就不見了(連不上8080)。 這也就是咱們上面提到的:CMD可以允許有多個,但是只有最后一個會正常執(zhí)行,這里的 CMD ["/bin/bash","run"] 將之前的?CMD ["catalina.sh", "run"] 給覆蓋了,所以貓貓不見了。

2.CMD和RUN之間的區(qū)別

CMD在docker run時運行

RUN在docker build時運行


十二、ENTRYPOINT

同樣也是定容器在啟動后要進行的操作。與CMD類似,但是ENTRYPOINT不會被docker run后面的命令覆蓋,而且這些命令行參數(shù)會被當做參數(shù)傳給ENTRYPOINT指定的程序。

命令格式:

ENTRYPOINT ["<可執(zhí)行文件>","<參數(shù)1>","<參數(shù)2>"...]

?ENTRYPOINT?可以和?CMD?一起用,這里的??CMD 等于是在給?ENTRYPOINT 傳參。

簡單來說?ENTRYPOINT?的優(yōu)先級比?CMD 跟高一些,一起使用時會變成:

<ENTRYPOINT>"<CMD>"

1.舉個栗子

假設(shè)用DockerFile來構(gòu)建Nginx的鏡像:

FROM nginx

ENTRYPOINT?["nginx","-c"]
#定參

CMD ["/etc/nginx/nginx.conf"]
#變參

上述DockerFile衍生出的實際命令如下:

nginx -c /etc/nginx/nginx.conf

那如果在運行時添加了參數(shù),如下:

docker run? nginx -c /etc/nginx/new.conf

這里因為在運行時,添加了一個新的conf,也就相當于在DockerFile中添加了一段新的CMD。咱們在上面有提到,CMD會被最后的CMD代替掉(也就是只有最后一個CMD能正常運行),那么以上代碼在實際運行時其實如下:

nginx -c /etc/nginx/new.conf

即便在DockerFile中寫了??ENTRYPOINT+CMD ,但是還是會被run后面新加的參數(shù)代替。

2.優(yōu)點

在執(zhí)行docker run的時候可以給ENTRYPOINT添加所需要的參數(shù)

3.注意

若DockerFile中存在多個ENTRYPOINT,僅最后一個生效


舉例

零、需求和準備

需求:使用DockerFile給CentOS鏡像上添加vim+ifconfig+jdk8,啟動一下(但是我這里建議各位在拉centos鏡像的時候加上版本號7,后面會提到):

docker run -it 5d0da3dc9764 /bin/bash

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

?咱么剛剛拉取下來的Centos鏡像是不具備上述功能的,咱們查看一下:

vim 1.txt

ifconfig

java -version

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

我們現(xiàn)在去下一個jdk的gz包(隨便選一個即可,這里我用的是171):jdk鏡像下載

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生


一、編寫Dockerfile文件

在宿主機的根目錄下創(chuàng)建一個新目錄,叫做myfile然后使用xftp等工具將上面下載的包傳進去:

mkdir /myfile

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

?然后在此目錄下用vim新建文件Dockerfile,注意:這里的D要大寫,f要小寫

vim Dockerfile

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

注意點:因為CentOS8已經(jīng)停止維護了,所以這里的第一行FROM后面需要加上7的版本號,否則后面會報錯,將以下內(nèi)容復(fù)制進去:

FROM centos:7
#基礎(chǔ)鏡像

MAINTAINER van<123@123.com>
#維護者和聯(lián)系方式
 
ENV MYPATH /usr/local
WORKDIR $MYPATH
#以變量的形式給到一個落腳點
 
RUN yum -y install vim
#安裝vim編輯器

RUN yum -y install net-tools
#安裝ifconfig命令查看網(wǎng)絡(luò)IP

RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#安裝java8及l(fā)ib庫

ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#ADD 是相對路徑j(luò)ar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安裝包必須要和Dockerfile文件在同一位置

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
#配置java環(huán)境變量
 
EXPOSE 80
#centos也不需要去曝露什么端口,這里是隨便寫的
 
CMD echo $MYPATH
CMD echo "success###############ok"
CMD /bin/bash

二、構(gòu)建

讓在當前目錄下進行構(gòu)建:

docker build -t centosjava8:1.5 .

.號是指鏡像構(gòu)建時打包上傳到Docker引擎中的文件的目錄,不是本機目錄。這里要注意的是:版本號后面有一個空格,之后再加上.

過程可能會比較漫長,運行結(jié)果如下:

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

可以看到,所有的Dockerfile指令都已經(jīng)構(gòu)建成功。

咱們docker images查看一下:

docker images

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

我這里出現(xiàn)了一個虛懸鏡像,留到下一篇博客再講吧。已經(jīng)寫完了:Docker容器:虛懸鏡像) 可以看到新的鏡像大小有整整1.22個G比原先的200多M大了不少。運行一下(注意一下自己的鏡像ID):

docker run -it 24af206ac896 /bin/bash

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

pwd查看一下落腳點在哪?

pwd

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

和我們之前設(shè)置的WORKDIR落腳點一致,沒有問題。

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

再來看看其它功能是否正常

vim 1.txt

ifconfig

java -version

dockerfile cp,Docker,Linux,linux,docker,容器,服務(wù)器,云原生

?試驗成功!


UnionFS聯(lián)合文件系統(tǒng)

這里我把整個構(gòu)建的過程復(fù)制過來:

[root@vanqiyeah myfile]# docker build -t centosjava8:1.5 .
Sending build context to Docker daemon  190.9MB
Step 1/17 : FROM centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:7
 ---> eeb6ee3f44bd
Step 2/17 : MAINTAINER van<123@123.com>
 ---> Running in bedec783f19e
Removing intermediate container bedec783f19e
 ---> 3d5b6d941195
Step 3/17 : ENV MYPATH /usr/local
 ---> Running in f08acf892bbe
Removing intermediate container f08acf892bbe
 ---> d892076f0380
Step 4/17 : WORKDIR $MYPATH
 ---> Running in da6bfab459dc
Removing intermediate container da6bfab459dc
 ---> a9b042242153
Step 5/17 : RUN yum -y install vim
 ---> Running in 1f31b178d7b0
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: mirrors.cn99.com
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-common = 2:7.4.629-8.el7_9 for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: which for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64
--> Running transaction check
---> Package gpm-libs.x86_64 0:1.20.7-6.el7 will be installed
---> Package perl.x86_64 4:5.16.3-299.el7_9 will be installed
--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Temp) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Unix) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec::Functions) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Spec) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(File::Path) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Exporter) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Cwd) for package: 4:perl-5.16.3-299.el7_9.x86_64
--> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-299.el7_9.x86_64
---> Package perl-libs.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package vim-common.x86_64 2:7.4.629-8.el7_9 will be installed
--> Processing Dependency: vim-filesystem for package: 2:vim-common-7.4.629-8.el7_9.x86_64
---> Package which.x86_64 0:2.20-7.el7 will be installed
--> Running transaction check
---> Package perl-Carp.noarch 0:1.26-244.el7 will be installed
---> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed
---> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed
---> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed
---> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed
---> Package perl-Getopt-Long.noarch 0:2.40-3.el7 will be installed
--> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-3.el7.noarch
--> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-3.el7.noarch
---> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed
---> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed
--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
--> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch
---> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed
---> Package perl-Socket.x86_64 0:2.010-5.el7 will be installed
---> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed
---> Package perl-Time-HiRes.x86_64 4:1.9725-3.el7 will be installed
---> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed
---> Package perl-constant.noarch 0:1.27-2.el7 will be installed
---> Package perl-macros.x86_64 4:5.16.3-299.el7_9 will be installed
---> Package perl-threads.x86_64 0:1.87-4.el7 will be installed
---> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed
---> Package vim-filesystem.x86_64 2:7.4.629-8.el7_9 will be installed
--> Running transaction check
---> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed
---> Package perl-Pod-Escapes.noarch 1:1.04-299.el7_9 will be installed
---> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed
--> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch
--> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch
---> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed
--> Running transaction check
---> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed
--> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch
--> Processing Dependency: groff-base for package: perl-Pod-Perldoc-3.20-4.el7.noarch
---> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed
--> Running transaction check
---> Package groff-base.x86_64 0:1.22.2-8.el7 will be installed
---> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed
---> Package perl-parent.noarch 1:0.225-244.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                    Arch       Version                Repository   Size
================================================================================
Installing:
 vim-enhanced               x86_64     2:7.4.629-8.el7_9      updates     1.1 M
Installing for dependencies:
 gpm-libs                   x86_64     1.20.7-6.el7           base         32 k
 groff-base                 x86_64     1.22.2-8.el7           base        942 k
 perl                       x86_64     4:5.16.3-299.el7_9     updates     8.0 M
 perl-Carp                  noarch     1.26-244.el7           base         19 k
 perl-Encode                x86_64     2.51-7.el7             base        1.5 M
 perl-Exporter              noarch     5.68-3.el7             base         28 k
 perl-File-Path             noarch     2.09-2.el7             base         26 k
 perl-File-Temp             noarch     0.23.01-3.el7          base         56 k
 perl-Filter                x86_64     1.49-3.el7             base         76 k
 perl-Getopt-Long           noarch     2.40-3.el7             base         56 k
 perl-HTTP-Tiny             noarch     0.033-3.el7            base         38 k
 perl-PathTools             x86_64     3.40-5.el7             base         82 k
 perl-Pod-Escapes           noarch     1:1.04-299.el7_9       updates      52 k
 perl-Pod-Perldoc           noarch     3.20-4.el7             base         87 k
 perl-Pod-Simple            noarch     1:3.28-4.el7           base        216 k
 perl-Pod-Usage             noarch     1.63-3.el7             base         27 k
 perl-Scalar-List-Utils     x86_64     1.27-248.el7           base         36 k
 perl-Socket                x86_64     2.010-5.el7            base         49 k
 perl-Storable              x86_64     2.45-3.el7             base         77 k
 perl-Text-ParseWords       noarch     3.29-4.el7             base         14 k
 perl-Time-HiRes            x86_64     4:1.9725-3.el7         base         45 k
 perl-Time-Local            noarch     1.2300-2.el7           base         24 k
 perl-constant              noarch     1.27-2.el7             base         19 k
 perl-libs                  x86_64     4:5.16.3-299.el7_9     updates     690 k
 perl-macros                x86_64     4:5.16.3-299.el7_9     updates      44 k
 perl-parent                noarch     1:0.225-244.el7        base         12 k
 perl-podlators             noarch     2.5.1-3.el7            base        112 k
 perl-threads               x86_64     1.87-4.el7             base         49 k
 perl-threads-shared        x86_64     1.43-6.el7             base         39 k
 vim-common                 x86_64     2:7.4.629-8.el7_9      updates     5.9 M
 vim-filesystem             x86_64     2:7.4.629-8.el7_9      updates      11 k
 which                      x86_64     2.20-7.el7             base         41 k

Transaction Summary
================================================================================
Install  1 Package (+32 Dependent packages)

Total download size: 19 M
Installed size: 63 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/gpm-libs-1.20.7-6.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for gpm-libs-1.20.7-6.el7.x86_64.rpm is not installed
Public key for perl-Pod-Escapes-1.04-299.el7_9.noarch.rpm is not installed
--------------------------------------------------------------------------------
Total                                              1.1 MB/s |  19 MB  00:16     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-9.2009.0.el7.centos.x86_64 (@CentOS)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : gpm-libs-1.20.7-6.el7.x86_64                                1/33 
  Installing : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                     2/33 
  Installing : 2:vim-common-7.4.629-8.el7_9.x86_64                         3/33 
  Installing : which-2.20-7.el7.x86_64                                     4/33 
install-info: No such file or directory for /usr/share/info/which.info.gz
  Installing : groff-base-1.22.2-8.el7.x86_64                              5/33 
  Installing : 1:perl-parent-0.225-244.el7.noarch                          6/33 
  Installing : perl-HTTP-Tiny-0.033-3.el7.noarch                           7/33 
  Installing : perl-podlators-2.5.1-3.el7.noarch                           8/33 
  Installing : perl-Pod-Perldoc-3.20-4.el7.noarch                          9/33 
  Installing : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                   10/33 
  Installing : perl-Encode-2.51-7.el7.x86_64                              11/33 
  Installing : perl-Text-ParseWords-3.29-4.el7.noarch                     12/33 
  Installing : perl-Pod-Usage-1.63-3.el7.noarch                           13/33 
  Installing : 4:perl-macros-5.16.3-299.el7_9.x86_64                      14/33 
  Installing : perl-Storable-2.45-3.el7.x86_64                            15/33 
  Installing : perl-Exporter-5.68-3.el7.noarch                            16/33 
  Installing : perl-constant-1.27-2.el7.noarch                            17/33 
  Installing : perl-Socket-2.010-5.el7.x86_64                             18/33 
  Installing : perl-Time-Local-1.2300-2.el7.noarch                        19/33 
  Installing : perl-Carp-1.26-244.el7.noarch                              20/33 
  Installing : perl-PathTools-3.40-5.el7.x86_64                           21/33 
  Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 22/33 
  Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch                        23/33 
  Installing : perl-File-Temp-0.23.01-3.el7.noarch                        24/33 
  Installing : perl-File-Path-2.09-2.el7.noarch                           25/33 
  Installing : perl-threads-shared-1.43-6.el7.x86_64                      26/33 
  Installing : perl-threads-1.87-4.el7.x86_64                             27/33 
  Installing : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      28/33 
  Installing : perl-Filter-1.49-3.el7.x86_64                              29/33 
  Installing : 4:perl-libs-5.16.3-299.el7_9.x86_64                        30/33 
  Installing : perl-Getopt-Long-2.40-3.el7.noarch                         31/33 
  Installing : 4:perl-5.16.3-299.el7_9.x86_64                             32/33 
  Installing : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                      33/33 
  Verifying  : perl-HTTP-Tiny-0.033-3.el7.noarch                           1/33 
  Verifying  : perl-threads-shared-1.43-6.el7.x86_64                       2/33 
  Verifying  : perl-Storable-2.45-3.el7.x86_64                             3/33 
  Verifying  : groff-base-1.22.2-8.el7.x86_64                              4/33 
  Verifying  : perl-Exporter-5.68-3.el7.noarch                             5/33 
  Verifying  : perl-constant-1.27-2.el7.noarch                             6/33 
  Verifying  : perl-PathTools-3.40-5.el7.x86_64                            7/33 
  Verifying  : 4:perl-macros-5.16.3-299.el7_9.x86_64                       8/33 
  Verifying  : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                       9/33 
  Verifying  : 1:perl-parent-0.225-244.el7.noarch                         10/33 
  Verifying  : perl-Socket-2.010-5.el7.x86_64                             11/33 
  Verifying  : which-2.20-7.el7.x86_64                                    12/33 
  Verifying  : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                    13/33 
  Verifying  : perl-File-Temp-0.23.01-3.el7.noarch                        14/33 
  Verifying  : 1:perl-Pod-Simple-3.28-4.el7.noarch                        15/33 
  Verifying  : perl-Time-Local-1.2300-2.el7.noarch                        16/33 
  Verifying  : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                   17/33 
  Verifying  : perl-Carp-1.26-244.el7.noarch                              18/33 
  Verifying  : 2:vim-common-7.4.629-8.el7_9.x86_64                        19/33 
  Verifying  : perl-Scalar-List-Utils-1.27-248.el7.x86_64                 20/33 
  Verifying  : perl-Pod-Usage-1.63-3.el7.noarch                           21/33 
  Verifying  : perl-Encode-2.51-7.el7.x86_64                              22/33 
  Verifying  : perl-Pod-Perldoc-3.20-4.el7.noarch                         23/33 
  Verifying  : perl-podlators-2.5.1-3.el7.noarch                          24/33 
  Verifying  : 4:perl-5.16.3-299.el7_9.x86_64                             25/33 
  Verifying  : perl-File-Path-2.09-2.el7.noarch                           26/33 
  Verifying  : perl-threads-1.87-4.el7.x86_64                             27/33 
  Verifying  : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                      28/33 
  Verifying  : gpm-libs-1.20.7-6.el7.x86_64                               29/33 
  Verifying  : perl-Filter-1.49-3.el7.x86_64                              30/33 
  Verifying  : perl-Getopt-Long-2.40-3.el7.noarch                         31/33 
  Verifying  : perl-Text-ParseWords-3.29-4.el7.noarch                     32/33 
  Verifying  : 4:perl-libs-5.16.3-299.el7_9.x86_64                        33/33 

Installed:
  vim-enhanced.x86_64 2:7.4.629-8.el7_9                                         

Dependency Installed:
  gpm-libs.x86_64 0:1.20.7-6.el7                                                
  groff-base.x86_64 0:1.22.2-8.el7                                              
  perl.x86_64 4:5.16.3-299.el7_9                                                
  perl-Carp.noarch 0:1.26-244.el7                                               
  perl-Encode.x86_64 0:2.51-7.el7                                               
  perl-Exporter.noarch 0:5.68-3.el7                                             
  perl-File-Path.noarch 0:2.09-2.el7                                            
  perl-File-Temp.noarch 0:0.23.01-3.el7                                         
  perl-Filter.x86_64 0:1.49-3.el7                                               
  perl-Getopt-Long.noarch 0:2.40-3.el7                                          
  perl-HTTP-Tiny.noarch 0:0.033-3.el7                                           
  perl-PathTools.x86_64 0:3.40-5.el7                                            
  perl-Pod-Escapes.noarch 1:1.04-299.el7_9                                      
  perl-Pod-Perldoc.noarch 0:3.20-4.el7                                          
  perl-Pod-Simple.noarch 1:3.28-4.el7                                           
  perl-Pod-Usage.noarch 0:1.63-3.el7                                            
  perl-Scalar-List-Utils.x86_64 0:1.27-248.el7                                  
  perl-Socket.x86_64 0:2.010-5.el7                                              
  perl-Storable.x86_64 0:2.45-3.el7                                             
  perl-Text-ParseWords.noarch 0:3.29-4.el7                                      
  perl-Time-HiRes.x86_64 4:1.9725-3.el7                                         
  perl-Time-Local.noarch 0:1.2300-2.el7                                         
  perl-constant.noarch 0:1.27-2.el7                                             
  perl-libs.x86_64 4:5.16.3-299.el7_9                                           
  perl-macros.x86_64 4:5.16.3-299.el7_9                                         
  perl-parent.noarch 1:0.225-244.el7                                            
  perl-podlators.noarch 0:2.5.1-3.el7                                           
  perl-threads.x86_64 0:1.87-4.el7                                              
  perl-threads-shared.x86_64 0:1.43-6.el7                                       
  vim-common.x86_64 2:7.4.629-8.el7_9                                           
  vim-filesystem.x86_64 2:7.4.629-8.el7_9                                       
  which.x86_64 0:2.20-7.el7                                                     

Complete!
Removing intermediate container 1f31b178d7b0
 ---> 636ad52d5f4e
Step 6/17 : RUN yum -y install net-tools
 ---> Running in 231811e49297
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirrors.cn99.com
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package net-tools.x86_64 0:2.0-0.25.20131004git.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package         Arch         Version                          Repository  Size
================================================================================
Installing:
 net-tools       x86_64       2.0-0.25.20131004git.el7         base       306 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 306 k
Installed size: 917 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : net-tools-2.0-0.25.20131004git.el7.x86_64                    1/1 
  Verifying  : net-tools-2.0-0.25.20131004git.el7.x86_64                    1/1 

Installed:
  net-tools.x86_64 0:2.0-0.25.20131004git.el7                                   

Complete!
Removing intermediate container 231811e49297
 ---> e7d6bb4a5865
Step 7/17 : RUN yum -y install glibc.i686
 ---> Running in 7d5529db79c6
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirrors.cn99.com
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package glibc.i686 0:2.17-326.el7_9 will be installed
--> Processing Dependency: glibc-common = 2.17-326.el7_9 for package: glibc-2.17-326.el7_9.i686
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.17-326.el7_9.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.17-326.el7_9.i686
--> Running transaction check
---> Package glibc-common.x86_64 0:2.17-317.el7 will be updated
--> Processing Dependency: glibc-common = 2.17-317.el7 for package: glibc-2.17-317.el7.x86_64
---> Package glibc-common.x86_64 0:2.17-326.el7_9 will be an update
---> Package nss-softokn-freebl.x86_64 0:3.53.1-6.el7_9 will be updated
---> Package nss-softokn-freebl.i686 0:3.67.0-3.el7_9 will be installed
--> Processing Dependency: nss-util >= 3.67.0-1 for package: nss-softokn-freebl-3.67.0-3.el7_9.i686
--> Processing Dependency: nspr >= 4.30.0 for package: nss-softokn-freebl-3.67.0-3.el7_9.i686
---> Package nss-softokn-freebl.x86_64 0:3.67.0-3.el7_9 will be an update
--> Running transaction check
---> Package glibc.x86_64 0:2.17-317.el7 will be updated
---> Package glibc.x86_64 0:2.17-326.el7_9 will be an update
---> Package nspr.x86_64 0:4.25.0-2.el7_9 will be updated
---> Package nspr.x86_64 0:4.32.0-1.el7_9 will be an update
---> Package nss-util.x86_64 0:3.53.1-1.el7_9 will be updated
---> Package nss-util.x86_64 0:3.67.0-1.el7_9 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                  Arch         Version              Repository     Size
================================================================================
Installing:
 glibc                    i686         2.17-326.el7_9       updates       4.3 M
Installing for dependencies:
 nss-softokn-freebl       i686         3.67.0-3.el7_9       updates       325 k
Updating for dependencies:
 glibc                    x86_64       2.17-326.el7_9       updates       3.6 M
 glibc-common             x86_64       2.17-326.el7_9       updates        12 M
 nspr                     x86_64       4.32.0-1.el7_9       updates       127 k
 nss-softokn-freebl       x86_64       3.67.0-3.el7_9       updates       337 k
 nss-util                 x86_64       3.67.0-1.el7_9       updates        79 k

Transaction Summary
================================================================================
Install  1 Package  (+1 Dependent package)
Upgrade             ( 5 Dependent packages)

Total download size: 20 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.

--------------------------------------------------------------------------------
Total                                               35 kB/s |  20 MB  09:45     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : nss-softokn-freebl-3.67.0-3.el7_9.x86_64                    1/12 
  Updating   : glibc-common-2.17-326.el7_9.x86_64                          2/12 
  Updating   : glibc-2.17-326.el7_9.x86_64                                 3/12 
  Updating   : nspr-4.32.0-1.el7_9.x86_64                                  4/12 
  Updating   : nss-util-3.67.0-1.el7_9.x86_64                              5/12 
  Installing : nss-softokn-freebl-3.67.0-3.el7_9.i686                      6/12 
  Installing : glibc-2.17-326.el7_9.i686                                   7/12 
  Cleanup    : nspr-4.25.0-2.el7_9.x86_64                                  8/12 
  Cleanup    : nss-util-3.53.1-1.el7_9.x86_64                              9/12 
  Cleanup    : nss-softokn-freebl-3.53.1-6.el7_9.x86_64                   10/12 
  Cleanup    : glibc-common-2.17-317.el7.x86_64                           11/12 
  Cleanup    : glibc-2.17-317.el7.x86_64                                  12/12 
  Verifying  : glibc-common-2.17-326.el7_9.x86_64                          1/12 
  Verifying  : nss-softokn-freebl-3.67.0-3.el7_9.x86_64                    2/12 
  Verifying  : glibc-2.17-326.el7_9.x86_64                                 3/12 
  Verifying  : nss-util-3.67.0-1.el7_9.x86_64                              4/12 
  Verifying  : nspr-4.32.0-1.el7_9.x86_64                                  5/12 
  Verifying  : glibc-2.17-326.el7_9.i686                                   6/12 
  Verifying  : nss-softokn-freebl-3.67.0-3.el7_9.i686                      7/12 
  Verifying  : glibc-2.17-317.el7.x86_64                                   8/12 
  Verifying  : glibc-common-2.17-317.el7.x86_64                            9/12 
  Verifying  : nspr-4.25.0-2.el7_9.x86_64                                 10/12 
  Verifying  : nss-softokn-freebl-3.53.1-6.el7_9.x86_64                   11/12 
  Verifying  : nss-util-3.53.1-1.el7_9.x86_64                             12/12 

Installed:
  glibc.i686 0:2.17-326.el7_9                                                   

Dependency Installed:
  nss-softokn-freebl.i686 0:3.67.0-3.el7_9                                      

Dependency Updated:
  glibc.x86_64 0:2.17-326.el7_9     glibc-common.x86_64 0:2.17-326.el7_9       
  nspr.x86_64 0:4.32.0-1.el7_9      nss-softokn-freebl.x86_64 0:3.67.0-3.el7_9 
  nss-util.x86_64 0:3.67.0-1.el7_9 

Complete!
Removing intermediate container 7d5529db79c6
 ---> 12d42a5b6004
Step 8/17 : RUN mkdir /usr/local/java
 ---> Running in 3e8a6abff8e2
Removing intermediate container 3e8a6abff8e2
 ---> f4c3fd2bae1f
Step 9/17 : ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
 ---> 440a6bd6da61
Step 10/17 : ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
 ---> Running in 24bc3cb8bd04
Removing intermediate container 24bc3cb8bd04
 ---> 13c4ca55f35e
Step 11/17 : ENV JRE_HOME $JAVA_HOME/jre
 ---> Running in 782b9bbf4d78
Removing intermediate container 782b9bbf4d78
 ---> f9051f305225
Step 12/17 : ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
 ---> Running in 937c1030ddd1
Removing intermediate container 937c1030ddd1
 ---> d9d89b3a80e0
Step 13/17 : ENV PATH $JAVA_HOME/bin:$PATH
 ---> Running in 92d4091fcb25
Removing intermediate container 92d4091fcb25
 ---> 3e3fe4a7e8ee
Step 14/17 : EXPOSE 80
 ---> Running in 3478980aa8b5
Removing intermediate container 3478980aa8b5
 ---> 370ac0bf88e2
Step 15/17 : CMD echo $MYPATH
 ---> Running in eeb80d74b277
Removing intermediate container eeb80d74b277
 ---> 7c81a14e5fff
Step 16/17 : CMD echo "success###############ok"
 ---> Running in bfb99fd052de
Removing intermediate container bfb99fd052de
 ---> 94dc9fe4a32f
Step 17/17 : CMD /bin/bash
 ---> Running in f5e3b73e37ec
Removing intermediate container f5e3b73e37ec
 ---> 24af206ac896
Successfully built 24af206ac896
Successfully tagged centosjava8:1.5

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 鏡像的基礎(chǔ)。鏡像可以通過分層來進行繼承,基于基礎(chǔ)鏡像(沒有父鏡像),可以制作各種具體的應(yīng)用鏡像。

回頭看看構(gòu)建過程中的17個步驟,?再自行體會一下什么是聯(lián)合文件系統(tǒng)。文章來源地址http://www.zghlxwxcb.cn/news/detail-553069.html

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

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

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

相關(guān)文章

  • 【Docker】如何編寫Dockerfile,深入理解 Dockerfile:構(gòu)建精簡且高效的容器鏡像

    【Docker】如何編寫Dockerfile,深入理解 Dockerfile:構(gòu)建精簡且高效的容器鏡像

    Docker 是一種輕量級的容器化技術(shù),使得應(yīng)用程序和它們的依賴可以被打包到一個容器中,方便在不同環(huán)境中運行。Dockerfile 是用于定義 Docker 鏡像的文本文件,其中包含了一系列的指令,這些指令描述了鏡像中應(yīng)該包含哪些內(nèi)容和如何配置。 在開始編寫 Dockerfile 之前,確保你

    2024年01月24日
    瀏覽(30)
  • SpringCloud微服務(wù)(二)網(wǎng)關(guān)GateWay、Docker、Dockerfile、Linux操作超詳細

    SpringCloud微服務(wù)(二)網(wǎng)關(guān)GateWay、Docker、Dockerfile、Linux操作超詳細

    目錄 統(tǒng)一網(wǎng)關(guān)GateWay ?搭建網(wǎng)關(guān)服務(wù)的步驟 1、引入依賴 2、編寫路由配置及nacos地址 路由斷言工廠Route Oredicate Factory? 路由過濾器配置 ?全局過濾器GlobalFilter 過濾器執(zhí)行順序 跨域問題處理? ?Docker ??編輯 Docker與虛擬機? 鏡像和容器 Docker的安裝 啟動docker 配置鏡像加速 Dock

    2024年02月11日
    瀏覽(24)
  • Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker容器化技術(shù)(使用Dockerfile制作鏡像)

    Docker 支持通過擴展現(xiàn)有鏡像,創(chuàng)建新的鏡像。實際上,Docker Hub 中 99% 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構(gòu)建出來的。 1、Docker 鏡像為什么分層 鏡像分層最大的一個好處就是共享資源。 比如說有多個鏡像都從相同的 base 鏡像構(gòu)建而來,那么 Docker Host 只需在

    2024年03月19日
    瀏覽(861)
  • 【Docker】Docker容器數(shù)據(jù)卷、容器卷之間的繼承和DockerFIle的詳細講解

    【Docker】Docker容器數(shù)據(jù)卷、容器卷之間的繼承和DockerFIle的詳細講解

    ??歡迎來到本文?? ??個人簡介:陳童學哦,目前學習C/C++、算法、Python、Java等方向,一個正在慢慢前行的普通人。 ??系列專欄:陳童學的日記 ??其他專欄:C++STL,感興趣的小伙伴可以看看。 ??希望各位→點贊?? + 收藏?? + 留言?? ? ??萬物從心起,心動則萬物動??

    2024年02月14日
    瀏覽(25)
  • Docker容器:docker數(shù)據(jù)管理、鏡像的創(chuàng)建及dockerfile案例

    Docker容器:docker數(shù)據(jù)管理、鏡像的創(chuàng)建及dockerfile案例

    因為數(shù)據(jù)寫入后如果停止了容器,再開啟數(shù)據(jù)就會消失,使用數(shù)據(jù)管理的數(shù)據(jù)卷掛載,實現(xiàn)了數(shù)據(jù)的持久化,重啟數(shù)據(jù)還會存在;還有一種方式,容器之間共享文件即相當于有個備份,也會解決停止容器后數(shù)據(jù)消失的問題。 管理 Docker 容器中數(shù)據(jù)主要有兩種方式:數(shù)據(jù)卷(

    2024年02月12日
    瀏覽(27)
  • Docker容器與虛擬化技術(shù):Docker鏡像創(chuàng)建、Dockerfile實例

    Docker容器與虛擬化技術(shù):Docker鏡像創(chuàng)建、Dockerfile實例

    目錄 一、理論 1.Docker鏡像的創(chuàng)建方法 2.Docker鏡像結(jié)構(gòu)的分層 3.Dockerfile 案例 4.構(gòu)建Systemctl鏡像(基于SSH鏡像) 5.構(gòu)建Tomcat 鏡像 6.構(gòu)建Mysql鏡像 二、實驗 1.Docker鏡像的創(chuàng)建 2.?Dockerfile 案例 3.構(gòu)建Systemctl鏡像(基于SSH鏡像) 三、問題 1.nginx網(wǎng)頁打不開 ?2.Apache容器啟動一直為Ex

    2024年02月12日
    瀏覽(94)
  • (三)docker:Dockerfile構(gòu)建容器運行jar包

    (三)docker:Dockerfile構(gòu)建容器運行jar包

    目錄結(jié)構(gòu)以及準備的文件 2.Dockerfile內(nèi)容 3.構(gòu)建鏡像 4.查看生成鏡像 5.創(chuàng)建并運行容器 6.查看創(chuàng)建的容器 7.啟動畫面確認

    2024年02月06日
    瀏覽(19)
  • docker容器:docker鏡像的三種創(chuàng)建方法及dockerfile案例

    docker容器:docker鏡像的三種創(chuàng)建方法及dockerfile案例

    目錄 一、基于現(xiàn)有鏡像創(chuàng)建 1、創(chuàng)建啟動鏡像 2、生成新鏡像 二、基于本地模板創(chuàng)建? 1、OPENVZ 下載模板 2、導(dǎo)入容器生成鏡像 三、基于dockerfile創(chuàng)建? 1、dockerfile結(jié)構(gòu)及分層 2、聯(lián)合文件系統(tǒng) 3、docker鏡像加載原理 4、dockerfile操作常用的指令 (1)FROM指令 (2)MAINTAINER 指令 (3)RUN指令

    2023年04月20日
    瀏覽(41)
  • Docker進階:容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    Docker進階:容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    ??The Begin??點點關(guān)注,收藏不迷路?? 1、完成數(shù)據(jù)持久化和共享數(shù)據(jù),docker容器中的數(shù)據(jù),同步到本地。 2、重要數(shù)據(jù)back_up 特點: 實時生效、數(shù)據(jù)卷可在容器之間共享和重用數(shù)據(jù)、數(shù)據(jù)卷中的更改不會包含在鏡像更新中、數(shù)據(jù)卷的生命周期會一直延續(xù)到?jīng)]有容器使用它為止

    2024年02月09日
    瀏覽(27)
  • Docker基礎(chǔ)入門:容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    Docker基礎(chǔ)入門:容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    ??The Begin??點點關(guān)注,收藏不迷路?? 1、完成數(shù)據(jù)持久化和共享數(shù)據(jù),docker容器中的數(shù)據(jù),同步到本地。 2、重要數(shù)據(jù)back_up 特點: 實時生效、數(shù)據(jù)卷可在容器之間共享和重用數(shù)據(jù)、數(shù)據(jù)卷中的更改不會包含在鏡像更新中、數(shù)據(jù)卷的生命周期會一直延續(xù)到?jīng)]有容器使用它為止

    2024年02月10日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包