什么是Dockerfile
1.Dockerfile是用來定義單個(gè)容器的內(nèi)容和啟動行為,自動構(gòu)建 Docker鏡像的配置文件,用戶可使用 Dockerfile快速創(chuàng)建自定義的鏡像。
2.Dockerfile中的命令非常類似于Linux下的Shell命令
基于容器生成鏡像容器啟動后是可寫的,所有寫操作都保存在頂部的可寫層中。可以通過docker commit命令將現(xiàn)有的容器進(jìn)行提交來生成新的鏡像。具體的實(shí)現(xiàn)原理是通過對可寫層的修改生成新的鏡像。
鏡像是通過一層層可寫層,經(jīng)過生成鏡像,反復(fù)過程而去構(gòu)建出來。進(jìn)一步了解DockerfileDockerfile可以非常容易地定義鏡像內(nèi)容。Dockerfile是由一系列指令和參數(shù)構(gòu)成的腳本,每一條指令構(gòu)建一層,因此每一條指令的內(nèi)容就是描述該層應(yīng)當(dāng)如何構(gòu)建,一個(gè)Dockerfile包含了構(gòu)建鏡像的完整指令。鏡像的定制實(shí)際上就是定制每一層所添加的配置、文件。
將每一層修改、安裝、構(gòu)建、操作的命令都寫入一個(gè)Dockerfile腳本,使用該腳本構(gòu)建、定制鏡像,可以解決基于容器生成鏡像無法重復(fù)、構(gòu)建缺乏透明性和體積偏大的問題。創(chuàng)建Dockerfile之后,當(dāng)需要定制自己額外的需求時(shí),只需在Dockerfile上添加或者修改指令,重新生成鏡像即可。
從應(yīng)用軟件的角度來看:
Dockerfile、Docker鏡像與Docker容器分別代表軟件的三個(gè)不同階段,
Dockerfile是軟件的原材料清單
Docker鏡像是軟件的交付品
Docker容器則可以認(rèn)為是軟件鏡像的運(yùn)行態(tài),也即依照鏡像運(yùn)行的容器實(shí)例
Dockerfile面向開發(fā),Docker鏡像成為交付標(biāo)準(zhǔn),Docker容器則涉及部署與運(yùn)維,三者缺一不可,合力充當(dāng)Docker體系的基石。