摘要:個(gè)人理解使用來(lái)構(gòu)建鏡像其實(shí)是將應(yīng)用部署及相關(guān)環(huán)境配置的命令集成到中,以便能統(tǒng)一鏡像內(nèi)容,與傳統(tǒng)的部署差別在于,使用部署可以減小鏡像內(nèi)容的差異,方便控制。
個(gè)人理解:使用Dockerfile來(lái)構(gòu)建鏡像其實(shí)是將應(yīng)用部署及相關(guān)環(huán)境配置的命令集成到Dockerfile中,以便能統(tǒng)一鏡像內(nèi)容,與傳統(tǒng)的部署差別在于,使用Dockerfile部署可以減小鏡像內(nèi)容的差異,方便控制。
先說(shuō)明Dockerfile中包含哪些內(nèi)容:
基礎(chǔ)鏡像信息
維護(hù)者信息
鏡像操作指令
容器啟動(dòng)時(shí)執(zhí)行指令
#mkdir -p /opt/docker-file/nginx #cd /opt/docker-file/nginx #vim DockerfileDockerfile內(nèi)容
[lileikf2016@instance-1 nginx]$ cat Dockerfile #This is my docker file about nginx #Version: 1.0.0 #This is my docker file about nginx #Version: 1.0.0 #Author: Profeel Wang #Base image FROM centos #Maintainer MAINTAINER Profeel Wang [email protected] #Add files ADD pcre-8.37.tar.gz /usr/local/src ADD nginx-1.11.13.tar.gz /usr/local/src #RUN RUN yum install -y wget gcc gcc-c++ make openssl-devel RUN useradd -s /sbin/nologin -M www #WORKDIR WORKDIR /usr/local/src/nginx-1.11.13 #RUN RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf ENV PATH /usr/local/nginx/sbin:$PATH #Expose Port EXPOSE 80 #Run the application CMD ["nginx"]啟動(dòng)鏡像
sudo docker build -t nginx-file:v1 .
查看構(gòu)建的鏡像[lileikf2016@instance-docker nginx]$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx-file v1 cbb545419976 15 minutes ago 394.9 MB docker.io/centos latest a8493f5f50ff 11 days ago 192.5 MB根據(jù)構(gòu)建的鏡像創(chuàng)建容器
sudo docker run -d -p 80:80 nginx-file:v1查看容器中的鏡像是否能訪問(wèn)
大功告成!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26852.html
摘要:用于配置當(dāng)前所創(chuàng)建的鏡像作為其它新創(chuàng)建鏡像的基礎(chǔ)鏡像時(shí),所執(zhí)行的操作指令。運(yùn)行構(gòu)建命令構(gòu)建命令用于使用創(chuàng)建鏡像。 本文旨在用通俗的語(yǔ)言講述枯燥的知識(shí) 前面講到鏡像的構(gòu)建時(shí),講述的是用commit的方式構(gòu)建鏡像,而Dockerfile是另一種構(gòu)建鏡像的方式。 Dockerfile構(gòu)建鏡像是以基礎(chǔ)鏡像為基礎(chǔ)的,Dockerfile是一個(gè)文本文件,內(nèi)容是用戶編寫的一些docker指令,每一條...
摘要:本文已獲得原作者授權(quán)。在構(gòu)建鏡像的過(guò)程中會(huì)緩存一系列中間鏡像。鏡像時(shí),會(huì)順序執(zhí)行中的指令,并同時(shí)比較當(dāng)前指令和其基礎(chǔ)鏡像的所有子鏡像,若發(fā)現(xiàn)有一個(gè)子鏡像也是由相同的指令生成,則命中緩存,同時(shí)可以直接使用該子鏡像而避免再去重新生成了。 本文已獲得原作者 CodeSheep 授權(quán)。 概述 Dockerfile 是專門用來(lái)進(jìn)行自動(dòng)化構(gòu)建鏡像的編排文件(就像 Jenkins 2.0時(shí)代的 J...
摘要:我們可以了解到,鏡像的定制實(shí)際上就是定制每一層所添加的配置文件。指令之指令的目的就是來(lái)指定基礎(chǔ)鏡像。指令之指令是用來(lái)執(zhí)行命令行命令的。由于命令行的強(qiáng)大能力,指令在定制鏡像時(shí)是最常用的指令之一。構(gòu)建鏡像這里我們使用了命令進(jìn)行鏡像構(gòu)建。 我們可以了解到,鏡像的定制實(shí)際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構(gòu)建、操作的命令都寫入一個(gè)腳本,用這個(gè)腳本來(lái)構(gòu)建、定制鏡...
摘要:導(dǎo)讀要從容器化開始,而容器又需要從開始,本文將介紹如何寫出一個(gè)優(yōu)雅的文件。只要記住以上三點(diǎn)就能寫出不錯(cuò)的。執(zhí)行完成項(xiàng)目的構(gòu)建。 導(dǎo)讀 Kubernetes要從容器化開始,而容器又需要從Dockerfile開始,本文將介紹如何寫出一個(gè)優(yōu)雅的Dockerfile文件。 文章主要內(nèi)容包括: Docker容器 Dockerfile 使用多階構(gòu)建 感謝公司提供大量機(jī)器資源及時(shí)間讓我們可以實(shí)踐...
摘要:在構(gòu)建鏡像的過(guò)程中會(huì)緩存一系列中間鏡像。鏡像時(shí),會(huì)順序執(zhí)行中的指令,并同時(shí)比較當(dāng)前指令和其基礎(chǔ)鏡像的所有子鏡像,若發(fā)現(xiàn)有一個(gè)子鏡像也是由相同的指令生成,則命中緩存,同時(shí)可以直接使用該子鏡像而避免再去重新生成了。 showImg(https://segmentfault.com/img/remote/1460000015606308?w=2000&h=1428); 概述 Docker...
摘要:版本以后,新增了多階段構(gòu)建。所謂多階段構(gòu)建,實(shí)際上是允許一個(gè)中出現(xiàn)多個(gè)指令。因?yàn)槎鄠€(gè)指令會(huì)造成多根,則是無(wú)法實(shí)現(xiàn)的。會(huì)使用一個(gè)完全干凈的文件系統(tǒng),不包含任何文件。可以使得最后生成的鏡像最小化,其中只包含了程序。 Docker 17.05版本以后,新增了Dockerfile多階段構(gòu)建。所謂多階段構(gòu)建,實(shí)際上是允許一個(gè)Dockerfile 中出現(xiàn)多個(gè) FROM 指令。這樣做有什么意義呢? ...
閱讀 2782·2021-10-26 09:50
閱讀 2424·2021-10-11 11:08
閱讀 2165·2019-08-30 15:53
閱讀 1929·2019-08-30 15:44
閱讀 2413·2019-08-28 18:12
閱讀 2558·2019-08-26 13:59
閱讀 2881·2019-08-26 12:19
閱讀 2789·2019-08-26 12:09