Docker的主要目標是「Build, Ship and Run Any App, Anywhere」,即經過對應用組件的服務器
封裝(Packaging)、分發(Distribution)、部署(Deployment)、運行(Runtime)等生命週期的網絡
管理,達到應用組件級別的「一次封裝,處處運行」。ui
Docker引擎的基礎是Linux容器(Linux Containers,LXC)技術操作系統
Docker三大核心概念:生命週期
鏡像(image)進程
容器(Container)ip
倉庫(Repository)部署
Docker鏡像(Image)相似於虛擬機鏡像,能夠將它理解爲一個面向Docker引擎的只讀模板,包含了文件系統。例如:一個鏡像能夠只包含一個完整的Ubuntu操做系統環境,能夠把它稱爲一個Ubuntu鏡像。鏡像也能夠安裝了Apache應用程序(或用戶須要的其餘軟件),能夠把它稱爲一個Apache鏡像。鏡像是建立Docker容器的基礎。經過版本管理和增量的文件系統,Docker提供了一套十分簡單的機制來建立和更新現有的鏡像,用戶甚至能夠從網上下載一個已經作好的應用鏡像,並經過簡單的命令就能夠直接使用。虛擬機
Docker容器(Container)相似於一個輕量級的沙箱,Docker利用容器來運行和隔離應用。容器是從鏡像建立的應用運行實例,能夠將其啓動、開始、中止、刪除,而這些容器都是相互隔離、互不可見的。讀者能夠把容器看作一個簡易版的Linux系統環境(這包括root用戶權限、進程空間、用戶空間和網絡空間等),以及運行在其中的應用程序打包而成的應用盒子。鏡像自身是隻讀的。容器從鏡像啓動的時候,Docker會在鏡像的最上層建立一個可寫層,鏡像自己將保持不變。it
Docker倉庫(Repository)相似於代碼倉庫,是Docker集中存放鏡像文件的場所。有時候會看到有資料將Docker倉庫和註冊服務器(Reg-istry)混爲一談,並不嚴格區分。實際上,註冊服務器是存放倉庫的地方,其上每每存放着多個倉庫。每一個倉庫集中存放某一類鏡像,每每包括多個鏡像文件,經過不一樣的標籤(tag)來進行區分。
根據所存儲的鏡像公開分享與否,Docker倉庫能夠分爲公開倉庫(Public)和私有倉庫(Private)兩種形式。目前,最大的公開倉庫是Docker Hub,存放了數量龐大的鏡像供用戶下載。國內的公開倉庫包括Docker Pool等,能夠提供穩定的國內訪問。