在docker中,鏡像可以用來打包軟件運(yùn)行環(huán)境和基于運(yùn)行環(huán)境開發(fā)的軟件;鏡像是Docker運(yùn)行容器的前提,倉庫是存放鏡像的場所,更是Docker的核心,除了提供容器運(yùn)行時(shí)所需的程序、庫、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。
docker鏡像可以做什么
鏡像到底是什么?
鏡像是一種輕量級(jí)、可執(zhí)行的獨(dú)立軟件包,用來打包軟件運(yùn)行環(huán)境和基于運(yùn)行環(huán)境開發(fā)的軟件,它包含運(yùn)行某個(gè)軟件所需的所有內(nèi)容,包括代碼、運(yùn)行時(shí)、庫、環(huán)境變量和配置文件。
docker鏡像的用處:
1、鏡像是Docker運(yùn)行容器的前提,倉庫是存放鏡像的場所,更是Docker的核心;
2、鏡像可以看作是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序、庫、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)。
為什么有 Docker 鏡像?
Paas 時(shí)代,它是提供一種叫 “托管應(yīng)用” 的能力,在部署應(yīng)用時(shí),通過手工或?qū)懸恍┠_本的方式進(jìn)行部署。這樣部署面臨問題就是云端和本地環(huán)境一致問題。
Docker 項(xiàng)目和 Cloud Foundry 的容器沒有太大不同,都是用 Cgroups 和 Namespace 來實(shí)現(xiàn)的“沙盒”,不同的功能是docker 項(xiàng)目 Docker 鏡像。Paas 很麻煩的原因就是用戶為每個(gè)應(yīng)用打包過程比較繁瑣,需要配置和給中修改等操作,非常費(fèi)勁。
然而,Docker 鏡像就是為了解決這個(gè)小小的打包功能,突然一夜之間成名。那么,你可能說 Docker 鏡像就是個(gè)壓縮包,是的,你猜對(duì)了,它就像一個(gè)壓縮包文件。它是如何解決 Paas 時(shí)代所面臨的云端和本地一致性問題?很簡單,它是把一個(gè)鏡像制作成一個(gè)完整的操作系統(tǒng)所有文件和對(duì)應(yīng)的目錄結(jié)構(gòu),這樣的壓縮包是跟你本地和測試環(huán)境用的操作系統(tǒng)一摸一樣。
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
從中可以看出,Docker 包含三個(gè)基本概念,分別是鏡像(Image)、容器(Container)和倉庫(Repository)。鏡像是 Docker 運(yùn)行容器的前提,倉庫是存放鏡像的場所,可見鏡像更是Docker的核心。
回到正題,Docker 鏡像可以看作是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序、庫、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。
推薦學(xué)習(xí):《docker視頻教程》