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