Docker的定義:

Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。 --摘自《百度百科》
實際上,雖然介紹docker的書籍有很多,但鮮有給docker一個明確的定義,因為它很難概括成一個概念,而應該更多的被闡述它的特性和技術范疇。綜合一些網(wǎng)上的觀點,Docker就是虛擬化的一種輕量級替代技術。這種技術不依賴任何語言、框架或系統(tǒng),可以將App變成一種標準化的、可移植的、自管理的組件,并脫離服務器硬件在任何主流系統(tǒng)中開發(fā)、調試和運行。
簡單的說就是,在 Linux 系統(tǒng)上迅速創(chuàng)建一個容器(類似虛擬機)并在容器上部署和運行應用程序,并通過配置文件可以輕松實現(xiàn)應用程序的自動化安裝、部署和升級,非常方便。因為使用了容器,所以可以很方便的把生產環(huán)境和開發(fā)環(huán)境分開,互不影響,這是 docker 最普遍的一個玩法
Docker核心技術:
Namespace是一種Linux內核技術,用來實現(xiàn)資源的隔離。資源,就是進程運行期間所看到的、使用的、依賴的周邊環(huán)境,資源有不同的種類,最典型的就是文件系統(tǒng)、網(wǎng)絡系統(tǒng)、進程PID、IPC資源等等。
Namespaces命名空間:
PID 進程隔離
NET 管理網(wǎng)絡接口
IPC 管理跨進程通信的訪問 InterProcess Communication
MNT 管理掛載點
UTS 隔離內核和版本標識 Unix Timesharing System
對于用戶態(tài)進程,通過Linux提供的系統(tǒng)調用來使用Namespace,這些系統(tǒng)調用包括:
clone() 創(chuàng)建進程的時候,將其限制在某個Namespace中
unshare() 使一個進程脫離某個Namespace
setns() 使一個進程加入到某個Namespace
CGroup最早叫做Process Container,由Google工程師在2006年提出,后在2007年更名為Control Groups,并被整合進Linux 2.6.24版內核。它用來對一組進程進行資源控制,包括如下功能:
資源限制(Resource Limitation):對進程組使用的資源總額進行限制
優(yōu)先級控制(Prioritization):通過為進程組分配CPU時間片數(shù)量從而控制了進程運行的優(yōu)先級
資源統(tǒng)計(Accounting):統(tǒng)計系統(tǒng)的資源使用量,如CPU使用時長、內存用量等等
進程控制(Control):對進程組執(zhí)行掛起、恢復等操作
CGroup包括如下概念:
任務(Task):一個Task就是Linux系統(tǒng)中的一個進程
控制組(Control Group):資源控制的最小單位;資源限制、優(yōu)先級控制等等都定義在控制組上。一個任務可以加入某個控制組,也可以從一個控制組遷移到其他控制組。
層級(Hierarchy):多個控制組形成樹狀的層次結構,叫做層級。
子系統(tǒng)(Subsystem):一個子系統(tǒng)就是一種類型的資源控制器。子系統(tǒng)必須附加到一個層級上才能起作用。
cpu:控制task對cpu的使用
cpuacct:生成task對cpu資源使用情況的報告
cpuset:為task分配獨立的cpu
blkio:為塊設備設定輸入/輸出限制
devices:開啟或關閉task對設備的訪問
freezer:掛起或恢復task
memory:設定task對內存使用量的限定,并且自動生成這些task對內存資源使用情況的報告
perfevent:使得task可以進行統(tǒng)一的性能測試
net_cls:通過使用等級識別符(classid)標記網(wǎng)絡數(shù)據(jù)包,從而允許Linux流量控制程序識別從具體cgroup中生成的數(shù)據(jù)包。
AuFS是一個能透明覆蓋一或多個現(xiàn)有文件系統(tǒng)的層狀文件系統(tǒng)。 支持將不同目錄掛載到同一個虛擬文件系統(tǒng)下,可以把不同的目錄聯(lián)合在一起,組成一個單一的目錄。這種是一種虛擬的文件系統(tǒng),文件系統(tǒng)不用格式化,直接掛載即可。
Docker一直在用AuFS作為容器的文件系統(tǒng)。當一個進程需要修改一個文件時, AuFS創(chuàng)建該文件的一個副本。AuFS可以把多層合并成文件系統(tǒng)的單層表示。這個過程稱為寫入復制( copy on write ) 。AuFS允許Docker把某些鏡像作為容器的基礎。例如,你可能有一個可以作為很多不同容器的基礎的CentOS系統(tǒng)鏡像。多虧AuFS,只要一個CentOS鏡像的副本就夠了,這樣既節(jié)省了存儲和內存,也保證更快速的容器部署。
使用AuFS的另一個好處是Docker的版本容器鏡像能力。每個新版本都是一個與之前版本的簡單差異改動,有效地保持鏡像文件最小化。但,這也意味著你總是要有一個記錄該容器從一個版本到另一個版本改動的審計跟蹤。
Docker相關的基本概念:
Image:鏡像,容器(Container)時一個動態(tài)的概念,而鏡像時一個相對靜止的概念。鏡像其實就是容器中的文件系統(tǒng),也可以說是一個極度精簡的Linux程序運行環(huán)境。
Container:容器,從根本形態(tài)上而言,容器(Container)其實就是運行在操作系統(tǒng)上的一個進程,只不過加入了對資源的隔離和限制。Docker Container是Image的實例化對象,共享操作系統(tǒng)內核。
Daemon:
Docker Daemon是創(chuàng)建和運行Container的Linux守護進程,也是Docker最主要的核心組件
Docker Daemon 可以理解為Docker Container的Container
Docker Daemon可以綁定本地端口并提供Rest API服務,用來遠程訪問和控制
Registry:docker鏡像倉庫,當docker請求使用一個未在當前系統(tǒng)中的Image時,docker會從鏡像倉庫中尋找并將其下載到系統(tǒng)中,這個docker獲取Image的地方就是Registry。默認情況下,registry是指的docker官方的倉庫,也就是Docker Hub Registry (https://hub.docker.com )。需要注意的是,Docker Hub是dotCloud公司私有的,目前國內只有一個DaoCloud提供代理緩存服務。當然,docker也提供了搭建私有Registry的方法,這個會在后續(xù)篇章中說明。
Docker的三大基礎組件:
倉庫Repository
鏡像Image
容器Container
這三者之間的關系為:首先,docker Repository提供各種各樣已經打包好的docker應用,也就是鏡像Image;其次,用戶可以在Repository中搜索自己需要的鏡像Image,下載到本地;最后,用戶使用下載好的Image創(chuàng)建docker Container。
Docker容器的能力:
文件系統(tǒng)隔離:每個容器都有自己的root文件系統(tǒng)
進程隔離:每個容器都運行在自己的進程環(huán)境中
網(wǎng)絡隔離:容器間的虛擬網(wǎng)絡接口和IP地址都是分開的
資源隔離和分組: 使用cgroups將CPU和內存之類的資源獨立分配給每個Docker容器
Docker的使用場景:
1、使用Docker容器開發(fā)、測試、部署服務
2、創(chuàng)建隔離的運行環(huán)境
3、搭建測試環(huán)境
4、構建多用戶的平臺即服務(PaaS)基礎設施
5、提供軟件即服務(SaaS)應用程序
6、高性能、超大規(guī)模的宿主機部署
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞名稱:Docker系列(一):Docker介紹-創(chuàng)新互聯(lián)
瀏覽地址:http://chinadenli.net/article14/cosige.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、小程序開發(fā)、面包屑導航、企業(yè)建站、Google、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容