如果你是應用開發人員或者虛擬環境的系統管理員,在2014年,你肯定聽到了不少關于Docker的消息。這個針對Linux應用容器虛擬化的平臺現在非常火爆,Docker為開發團隊帶來的靈活性以及給數據中心帶來的性能優勢可能帶來革命性變化。
簡而言之,Docker是基于Linux的開源應用容器抽象化和虛擬化機制。從本質上講,Docker可以幫助創建獨立虛擬環境(即容器),在這個環境中應用可以做自己的事情。這個虛擬容器為應用提供了對底層操作系統的自己的半私人化(和隔離的)視圖,包括存儲、網絡、流程等資源。
Docker容器允許在主機服務器之間無縫移動應用和服務。比虛擬機更輕量。另外,Docker還包含了版本控制和鏡像管理工具,允許應用和服務在物理服務器、虛擬服務器或云實例之間具備簡單的擴展性和彈性。
Docker帶來了之前技術所沒有的幾個新特點。第一是,與之前的方法相比,Docker讓容器部署和使用起來更容易、更安全。此外,由于Docker與其他容器領域的巨擘進行了合作,包括Canonical、谷歌、紅帽和Parallels,共同開發其關鍵的開源組件libcontainer,它為容器帶來了迫切需要的標準化。與此同時,廣大開發人員可以使用Docker封裝、交付和運行任何應用程序,應用程序成為輕型的、可移植的、自給自足的LXC容器,可以在任何地方運行。
Docker采用了一種特別的方式,以便可以整合到大多數DevOps(開發運營)應用程序當中,包括Puppet、Chef、Vagrant和Ansible,或者可以獨自使用,以管理開發環境。主要賣點是,它簡化了通常由另外這些應用程序執行的好多任務。具體來說,有了Docker,人們就可以搭建與活動服務器一模一樣的本地開發環境,從同一個主機運行多個開發環境(每個開發環境有獨特的軟件、操作系統和配置),在新的或不同的服務器上測試項目,以及讓任何人都可以在設置一模一樣的情況下處理同一項目,無論本地主機環境怎樣。
簡而言之,Docker能為你做的事情就是:相比其他技術,它能讓更多數量的應用程序在同一硬件上運行,它讓開發人員易于快速構建可隨時運行的容器化應用程序,它大大簡化了管理和部署應用程序的任務。
開發人員發現這個概念很強大,因為這可以為他們的應用帶來更便攜更容易定制的容器,這意味著他們只需花更少的時間來定制OS環境,同時有更多的時間來開發應用功能。數據中心團隊也發現這個概念的價值,因為它可以實現更有效的資源利用,從而實現數據中心更高的分配密度(例如更多的應用和更少的資源來支持它們)。
Docker這項開源技術不僅僅是紅帽和Canonical等Linux巨頭眼里的寵兒,微軟等專有軟件公司也在熱烈擁抱Docker。Docker已經成為主流Linux版本的標準特性,比如Ubuntu, Red Hat Enterprise Linux(RHEL)和CentOS。Docker的到來也催生了新的Linux發行版,比如CoreOS和Red Hat的Project Atomic,它們設計成能運行容器的最小環境系統。這些發行版相比傳統Linux發行版本,有比較新的內核和Docker版本,對內存和硬盤的占用也比較小。新的發行版本中也有一些新的工具用來管理大容量的容器部署。
由于Docker可以運行在任何有合理數據內核的Linux虛擬機上,所以它可以運行在很多IaaS提供的云上。許多大的云提供商宣布了對Docker和它的生態系統的附加支持。AWS推出了EC2 Container服務,讓客戶使用AWS上的Docker容器輕松地運行和管理分布式應用。EC2 Container服務與Docker Hub集成。Docker Hub是一個托管的資源庫,其中基于Docker容器的應用在整個開發社區或一個私人組織內分發和共享。AWS還直接貢獻于Docker Hub官方資源庫及開源項目。
2014年6月,微軟開放技術公司已經為Azure公有云用戶帶來了Linux版的Docker引擎。同時,Docker公司在美國與微軟共同宣布,雙方展開戰略合作,在即將發布的Windows Server中,將為發展迅速的Docker分布式應用開放平臺的全新容器技術提供支持。利用Docker技術開發容器應用的開發者與企業,將得以在Windows Server或Linux平臺上共享快速成長的Docker生態系統,充分利用其中的用戶、應用和工具等資源。雙方合作的主要內容包括:
Docker引擎,用來運行和編制容器的開源運行環境,將在新Windows Server上運行。在匯聚社區智慧的Docker Hub云平臺上將提供支持Windows Server的Docker引擎鏡像。通過提供最佳的Windows Server和Linux鏡像,將為開發者提供更大的開發靈活性。
Docker Hub還將通過Azure管理門戶和Azure Gallery直接整合到Microsoft Azure中去。這將幫助由眾多獨立軟件供應商(ISV)和云開發者組成的龐大的微軟生態系統,直接獲得Docker社區中的某些出色應用,從而推動Windows Server與Linux上的快速創新。
微軟還宣布將貢獻于Docker的API開放編程接口,從而讓多容器應用的相互移植得以實現。開發者將第一次得以直接利用Azure上預先設置好的Docker引擎,來創建多容器的Docker化應用。
適用于Windows Server的Docker引擎將在Docker開源項目的支持下開發,微軟將作為社區成員積極參與該項目。
編輯點評:盡管谷歌、紅帽、IBM以及微軟都已經著手推進開源Docker管理系統的發展與完善,但單就目前來看、Docker還不足以提供可與服務器虛擬化相抗衡的實際效果。而且我們還無法確定,容器虛擬化技術到底能否在短時間內迅猛發展、從而切實滿足企業用戶對于具體業務實施方案的高級需求。總之,縱觀整個虛擬化市場,在云計算驅動下正在呈現新的特點,企業對于虛擬化技術的需求也在變化,只有適應這種變化的產品與技術才能生存下去。