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