Docker是一個(gè)開源的應(yīng)用容器引擎,它讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到安裝了任何 Linux 發(fā)行版本的機(jī)器上。
Docker基于LXC來實(shí)現(xiàn)類似VM的功能,可以在更有限的硬件資源上提供給用戶更多的計(jì)算資源。與同VM等虛擬化的方式不同,LXC不屬于全虛擬化、部分虛擬化或半虛擬化中的任何一個(gè)分類,而是一個(gè)操作系統(tǒng)級(jí)虛擬化。
Docker是直接運(yùn)行在宿主操作系統(tǒng)之上的一個(gè)容器,使用沙箱機(jī)制完全虛擬出一個(gè)完整的操作,容器之間不會(huì)有任何接口,從而讓容器與宿主機(jī)之間、容器與容器之間隔離的更加徹底。每個(gè)容器會(huì)有自己的權(quán)限管理,獨(dú)立的網(wǎng)絡(luò)與存儲(chǔ)棧,及自己的資源管理能,使同一臺(tái)宿主機(jī)上可以友好的共存多個(gè)容器。
Docker借助Linux的內(nèi)核特性,如:控制組(Control Group)、命名空間(Namespace)等,并直接調(diào)用操作系統(tǒng)的系統(tǒng)調(diào)用接口。從而降低每個(gè)容器的系統(tǒng)開銷,并實(shí)現(xiàn)降低容器復(fù)雜度、啟動(dòng)快、資源占用小等特征。