溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker中容器和鏡像的關系【通俗易懂】

發(fā)布時間:2020-09-07 08:35:46 來源:網絡 閱讀:386 作者:zancun 欄目:云計算

docker中容器和鏡像的關系是什么?

最近學習了docker,大多人感覺容器和鏡像學的有點模糊。

特別是鏡像和容器,感覺完全分不開,所以在此學習,然后總結了一下,便于后面的學習。

這是我總結的鏡像總體層次架構:

VM/宿主機——>操作系統(tǒng)(如:centos)——>鏡像img(包含完整的系統(tǒng)如linux(ubuntu)、mysql、apache、nginx等。鏡像是由一層層的系統(tǒng)文件組成。)安裝——>創(chuàng)建容器——>創(chuàng)建應用(APP)。

一個完整的docker由以下幾部分組成:

DockerClient客戶端

Docker Daemon守護進程

Docker Image鏡像

DockerContainer容器


解決什么問題:容器——>鏡像——>tar文件

到了測試環(huán)境恢復的時候:tar——>鏡像——>容器

鏡像和容器的區(qū)別:鏡像可以理解為java類,容器可以理解為java中的對象。即,鏡像:Java類;容器:java對象。

通過類可以創(chuàng)建很多對象,也就是說:鏡像可以創(chuàng)建很多個容器。


另外:

docker的整個生命周期有三部分組成:鏡像(image)+容器(container)+倉庫(repository)。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?docker 容器=鏡像+可讀層

容器是由鏡像實例化而來。


簡單來說,鏡像是文件,容器是進程。

容器是基于鏡像創(chuàng)建的,即容器中的進程依賴于鏡像中的文件。?


docker 的鏡像概念類似虛擬機的鏡像。是一個只讀的模板,一個獨立的文件系統(tǒng),包括運行容器所需的數據,可以用來創(chuàng)建新的容器。

docker利用容器來運行應用:docker容器是由docker鏡像創(chuàng)建的運行實例。

docker容器類似虛擬機,可以執(zhí)行包含啟動,停止,刪除等。每個容器間是相互隔離的。容器中會運行特定的運用,包含特定應用的代碼及所需的依賴文件??梢园讶萜骺醋饕粋€簡易版的linux環(huán)境(包含root用戶權限,進程空間,用戶空間和網絡空間等)和運行在其中的應用程序。


Docker中容器和鏡像的關系【通俗易懂】

?

在Docker的生命周期中,最核心的兩個部分,一個是鏡像 Images,一個是容器 Containers。

鏡像運行起來就是容器。

容器服務運行的過程中,基于原始鏡像做了改變,比如安裝了程序,添加了文件,也可以提交回去 (commit)成為鏡像。

例如:一個鏡像可以包含一個完整的ubuntu操作系統(tǒng)環(huán)境,里面僅安裝了mysql或用戶需要的其他應用程序。

docker鏡像實際上是由一層一層的系統(tǒng)文件組成,這種層級的文件系統(tǒng)被稱為UnionFS( Union file system? 統(tǒng)一文件系統(tǒng)),鏡像可以基于dockerfile構建,dockerfile是一個描述文件,里面包含了若干條密令,每條命令都會對基礎文件系統(tǒng)創(chuàng)建新的層次結構。

docker提供了一個很簡單的機制來創(chuàng)建鏡像或更新現有的鏡像。用戶甚至可以從其他人那里下載一個已經做好的鏡像直接使用。(鏡像是只讀的,可以理解為靜態(tài)文件)

? ? ? ? 相對于鏡像來說容器是動態(tài)的,容器在啟動的時候創(chuàng)建了一層可寫層次作為最上層。

(? ?docker create <image -id > :為指定的鏡像添加一個可讀寫層,構成一個新的容器;)

?docker倉庫:如果使用了git和github就很容易理解docker的倉庫概念。docker倉庫概念和git類似。

docker倉庫是用來包含鏡像的位置,docker提供了一個注冊服務器(register)來保存多個倉庫,每個倉庫又可以包含多個具備不同tag的鏡像,

docker運作中使用的默認倉庫是docker hub公共倉庫。

倉庫支持的操作類似git,當用戶創(chuàng)建了自己的鏡像之后就可以使用push命令將它上傳到共有或者私有的倉庫。這樣下次再另外一臺機器上使用這個鏡像的時候只需要從倉庫里面pull下來就可以了。

————————————————

友情鏈接:

關于docker命令:https://www.runoob.com/docker/docker-rmi-command.html

https://blog.csdn.net/qq_40722827/article/list/2


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI