Docker并非容器虛擬化。Docker容器技術(shù)是一個開源平臺,能夠幫助管理員在容器中自動部署應用。像Docker這樣的工具依賴于通過LXC、libvirt、systemd-nspawn組件部署在Linux中的容器層。Docker的確包括了稱之為libcontainer、用于容器化的類庫。其他容器方式包括cgroups、用戶空間內(nèi)用于Linux操作系統(tǒng)的Checkpoint/Restore(CRIU)以及Kubernetes。
Docker的容器技術(shù)在行業(yè)中獲得如此多關(guān)注的原因在于它提供了一個平臺,該平臺能夠在單個包中高效集成并管理應用以及所有的依賴組件,該應用包能夠被放置到容器中而且可以在任何Linux服務器上運行。Docker封裝應用的方式使得它能夠在本地、私有云、公有云等平臺中運行。因此Docker提供了巨大的應用靈活性及可移植性——正是這些屬性引發(fā)了眾多企業(yè)應用者的關(guān)注。
例如,Docker已經(jīng)被集成到主要的云供應商產(chǎn)品中,比如Amazon Web Services、Google云平臺、微軟Azure以及其他行業(yè)領(lǐng)先的云基礎(chǔ)設施工具,比如Cloud Foundry Diego、OpenStack Nova、OpenSVC、Chef、Puppet、Salt等。Docker可能最終會被集成到紅帽的OpenShift Origin 平臺中。
盡管Docker容器技術(shù)目前聚焦于Linux環(huán)境,但有一個用于創(chuàng)建獨立于廠商、能夠支持多種操作系統(tǒng)標準的創(chuàng)業(yè)項目——開放容器項目(OCP)正在進行。因此在理想情況下,軟件開發(fā)人員應該能夠打包應用并清楚該應用將與Docker、CoreOS的rkt或者來自FreeBSD的Jetpack runtime項目,以及Apcera的Kurma容器環(huán)境一同運行。最終的目標是創(chuàng)建單個統(tǒng)一的容器環(huán)境而非創(chuàng)建多個競爭、不兼容的環(huán)境。
容器為軟件開發(fā)人員以及數(shù)據(jù)中心維護人員提供了新的機遇,但容器同樣提出了需要被了解并予以解決的新挑戰(zhàn)。好消息是容器技術(shù)不具有排他性。容器僅僅是虛擬化工具箱中的另一個工具——能夠與當前基于hypervisor的虛擬化在同樣的環(huán)境中共存,允許管理員以及開發(fā)人員以輕松的方式試用并接收容器。