Docker版本
2017年3月之后,Docker的版本命名開始發(fā)生變化,同時將CE版本和EE版本進(jìn)行分開。
Docker社區(qū)版(CE):為了開發(fā)人員或小團(tuán)隊(duì)創(chuàng)建基于容器的應(yīng)用,與團(tuán)隊(duì)成員分享和自動化的開發(fā)管道。docker-ce提供了簡單的安裝和快速的安裝,以便可以立即開始開發(fā)盗似。docker-ce集成和優(yōu)化,基礎(chǔ)設(shè)施平项。
Docker企業(yè)版(EE):專為企業(yè)的發(fā)展和IT團(tuán)隊(duì)建立赫舒。docker-ee為企業(yè)提供最安全的容器平臺,以應(yīng)用為中心的平臺葵礼。
相關(guān)內(nèi)核技術(shù)
docker容器本質(zhì)上是宿主機(jī)的==進(jìn)程==. 可以把docker容器內(nèi)部跑的進(jìn)程看作是宿主機(jī)的線程号阿。
Docker通過==namespace實(shí)現(xiàn)了資源隔離==
通過==cgroups實(shí)現(xiàn)了資源限制==
NameSpace
Linux內(nèi)核實(shí)現(xiàn)namespace的一個主要目的就是實(shí)現(xiàn)輕量級虛擬化(容器)服務(wù)。在同一個namespace下
的進(jìn)程可以感知彼此的變化鸳粉,而對外界的進(jìn)程一無所知扔涧。
inux內(nèi)核提拱了6種namespace隔離的系統(tǒng)調(diào)用
namespace 系統(tǒng)調(diào)用參數(shù) 隔離內(nèi)容
UTS: 每個NameSpace都擁有獨(dú)立的主機(jī)名或域名,可以把每個NameSpace認(rèn)為一個獨(dú)立主機(jī)届谈。
IPC: 每個容器依舊使用linux內(nèi)核中進(jìn)程交互的方法枯夜,實(shí)現(xiàn)進(jìn)程間通信
PID: 每個容器都擁有獨(dú)立的進(jìn)程樹,而容器是物理機(jī)中的一個進(jìn)程艰山,所以容器中的進(jìn)程是物理機(jī)的
線程
Net: 每個容器的網(wǎng)絡(luò)是隔離
Mount: 每個容器的文件系統(tǒng)是獨(dú)立的
User: 每個容器的用戶和組ID是隔離湖雹,每個容器都擁有root用戶
小結(jié): 應(yīng)用程序運(yùn)行在一個隔離的空間(namespace)內(nèi), 每個隔離的空間都擁有獨(dú)立的
UTS,IPC,PID,Net,Mount,User.
Control Group
控制組(CGroups)是Linux內(nèi)核的一個特性,主要用來對共享資源進(jìn)行隔離曙搬、限制摔吏、審計(jì)等。
只有能控制分配到容器的資源纵装,才能避免多個容器同時運(yùn)行時對宿主機(jī)系統(tǒng)的資源競爭征讲。
控制組可以提供對容器的內(nèi)存、CPU橡娄、磁盤IO等資源進(jìn)行限制和計(jì)費(fèi)管理诗箍。
內(nèi)容小結(jié)
容器屬于操作系統(tǒng)虛擬化,屬于Paas
容器可看作是一種輕量級,進(jìn)程級的虛擬機(jī)
相比于KVM虛擬機(jī)的優(yōu)勢
不需要安裝OS挽唉,和宿主機(jī)共享
鏡像存儲空間小
啟動速度快(容器為秒級,虛擬機(jī)一般需要10秒左右)
移植性更好,更輕便
性能更好
docker是一個實(shí)現(xiàn)容器的軟件滤祖,底層使用LXC
docker主要使用namespace命名空間技術(shù)實(shí)現(xiàn)資源隔離,使用cgroup實(shí)現(xiàn)資源限制