傳送門:
Docker學習筆記(1)--Docker安裝(Ubuntu 16.04)
Docker學習筆記(2)--使用Docker Hub Mirror加速Docker官方鏡像下載
Docker學習筆記(3)--什么是Docker鏡像莉御、容器和倉庫?
Docker學習筆記(4)--鏡像篇
Docker生命周期
Docker 包括三個基本概念:
鏡像(Image)
容器(Container)
倉庫(Repository)
這三部分組成了Docker的整個生命周期俗冻,如下圖所示礁叔,容器是由鏡像實例化而來的,這和我們學習的面向?qū)ο蟮母拍钍窒嗨破。覀兛梢园?code>鏡像想象成類
,把容器
想象成類經(jīng)過實例化后的對象
琅关,這樣就非常好理解鏡像和容器的關(guān)系了。
Docker鏡像
Docker的鏡像概念類似于虛擬機里的鏡像讥蔽,是一個只讀的模板涣易,一個獨立的文件系統(tǒng),包括運行容器所需的數(shù)據(jù)冶伞,可以用來創(chuàng)建新的容器新症。
例如:一個鏡像可以包含一個完整的 ubuntu 操作系統(tǒng)環(huán)境,里面僅安裝了Mysql或用戶需要的其它應用程序响禽。
Docker的鏡像實際上由一層一層的文件系統(tǒng)組成徒爹,這種層級的文件系統(tǒng)被稱為UnionFS
荚醒。鏡像可以基于Dockerfile
構(gòu)建,Dockerfile是一個描述文件瀑焦,里面包含若干條命令腌且,每條命令都會對基礎文件系統(tǒng)創(chuàng)建新的層次結(jié)構(gòu)。
Docker 提供了一個很簡單的機制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像榛瓮,用戶甚至可以直接從其他人那里下載一個已經(jīng)做好的鏡像來直接使用。
注:鏡像是只讀的巫击,可以理解為靜態(tài)文件禀晓。
Docker容器
Docker 利用容器來運行應用。
Docker容器是由Docker鏡像創(chuàng)建的運行實例坝锰。Docker容器類似虛擬機粹懒,可以支持的操作包括啟動,停止顷级,刪除等凫乖。每個容器間是相互隔離的,容器中會運行特定的應用弓颈,包含特定應用的代碼及所需的依賴文件帽芽。
可以把容器看做是一個簡易版的 Linux 環(huán)境(包括root用戶權(quán)限、進程空間翔冀、用戶空間和網(wǎng)絡空間等)和運行在其中的應用程序导街。
注:相對于鏡像來說容器是動態(tài)的,容器在啟動的時候創(chuàng)建一層可寫層作為最上層纤子。
Docker倉庫
如果你使用過git和github就很容易理解Docker的倉庫概念搬瑰。Docker 倉庫的概念跟Git 類似,注冊服務器可以理解為 GitHub 這樣的托管服務控硼。
Docker 倉庫是用來包含鏡像的位置泽论,Docker提供一個注冊服務器(Register)來保存多個倉庫,每個倉庫又可以包含多個具備不同tag的鏡像卡乾。Docker運行中使用的默認倉庫是 Docker Hub 公共倉庫翼悴。
倉庫支持的操作類似git,當用戶創(chuàng)建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫说订,這樣下次在另外一臺機器上使用這個鏡像時候抄瓦,只需要從倉庫上 pull 下來就可以了。.
Reference
http://tech.365rili.com/?p=41
https://yeasy.gitbooks.io/docker_practice/content/index.html