Docker – 你應該知道的10件事

容器並不是一個全新的技術,但這並不妨礙Docker如風暴一樣席捲整個世界。

如果你在IT圈裏,你一定聽說過Docker。就算與其他熱門技術,如:Puppet/Chef,Hadoop或者MongoDB放在一起,Docker仍然讓你耳目一新。

不過就算Docker現在怎樣的如日中天,這並不意味着它一定適合你。就如同我在這篇 Tech Pro Rearch 的分析文章中讀到的一樣,“對於是否要採用Docker作爲企業的未來技術方向,你需要的是謹慎!”

在你決定嘗試Docker之前,先了解以下這10點:

  1. Docker是一種軟件打包和發佈技術

現代軟件系統一般都由各種可運行的二進制文件,庫文件,配置文件和其他依賴組成。在一臺電腦上完成裝配已經是非常困難和複雜的事情,要“發佈”這些軟件的時候,事情會變的更加複雜。一旦你開始發佈過程,你就需要找到一種能夠讓這些組件正確打包的方式,還要考慮如何把打包好的軟件放到它們應該去的地方。Docker就是這樣一種幫助你進行軟件打包的方式,無論你的軟件有多少依賴,發佈到哪裏,其他開發人員的機器或者是生產環境;Docker都給你提供一種簡單易用而且標準化的方式。

  1. Docker並不是一種全新的技術

Docker的出現不過幾年的時間,但是容器技術已經存在幾十年了。容器技術在主機時代已經被證明是非常有用的技術,這讓Docker的成功看上去更像是時勢造英雄的結果,包括Linux的流行,虛擬化的大規模應用和雲計算的興起都給Docker技術的火熱創造了必要條件。

  1. 基本上大家都支持Docker

無論你選擇哪家技術供應商,基本上他們100%的支持Docker。從亞馬遜AWS到RedHat到Google,每一家能很好的支持Docker。

  1. Docker 不僅僅可以跑在Linux上面

雖然Docker起源於Linux平臺,但是微軟正在大力擁抱Docker技術。Docker依賴於很多在Windows平臺上並不存在的技術,比如Linux容器技術(LXC),cgroup和命名空間(namespaces)技術。所以微軟正在開足馬力在Windows Server上提供對應的能力以便與Docker進行集成。實際上,微軟在Windows中也使用自己的容器化技術很多年了,現在所要做的就是讓這些技術能夠更好的兼容Docker,因爲Docker已經成爲事實上的標準。

  1. Docker可以讓你像管理虛擬機一樣管理CPU,內存,網絡和磁盤資源

Docker是圍繞Linux的cgroup來實現的,cgroup的作用就是控制容器可以使用的各種計算機資源,包括cpu,內存,網絡和磁盤。在這一點上Docker提供了與虛擬機同樣的能力,讓你可以把計算機的一部分資源分配給一部分用戶或者進程,這樣他們就不會佔用所有的計算資源;同時,Docker又不會像VMware所提供的虛擬化一樣帶來那麼巨大的資源浪費(虛擬機必須運行整個操作系統,而Docker只是對應用進行虛擬化)。

  1. 啓動Docker容器比啓動虛擬機快的多的多(毫秒級vs分鐘級)

在一臺服務器上運行多個作業的傳統方式是啓動多個虛擬機,然後在不同的虛擬機上運行不同的作業。因爲虛擬機必須啓動整個操作系統,它就會很慢,一般都需要數分鐘的時間。同時這些虛擬機還非常消耗資源,因爲操作系統本身就要吃掉很多資源。容器可以解決同樣的問題,但是啓動容器和啓動一個進程是同一級別的,所以Docker讓你可以節省掉操作系統所帶來的資源浪費,以進程級別的消耗來提供與虛擬機類似的隔離能力。

  1. Docker還不會完全替代虛擬機,至少短期內不會

相對於虛擬機,Docker並不是一種非黑即白的替代方案,這主要是因爲Docker依賴於底層標準化的操作系統,而虛擬機是當前解決這個問題最好的方式。但是,這也意味着Docker是依賴於某種操作系統的,所以你不可能在一臺容器化主機上同時運行Windows和Linux應用,你需要至少2臺分別運行Windows和Linux的容器化主機才行。同時,就Docker當前的技術發展情況來看,容器的隔離能力還做得不到和虛擬機同樣的級別;因此對於有些多租戶的場景來說,Docker可能並不那麼適用。

  1. Docker的發展速度實在是太快了

在你登上Docker這趟列車之前,你要知道你上的是新幹線而不是蒸汽機車,每小時400公里的速度可不是鬧着玩的。看看這個僅僅存在了1年半的技術,它的API已經發布了15個版本,你就知道它的變化有多快了。就算Docker正在快速的成熟,並且已經逐漸具備了企業級軟件的能力,但是它並不提供10年技術支持,而着可能是很多企業所需要的。

注:作者的原文寫於2015年,現在Docker的版本已經是1.12。

  1. Docker並不是沒有競爭對手

雖然Docker很流行,它並不缺少競爭對手。比如CoreOs最近也發佈了一個名爲Rocket的產品,Docker最好的Linux伴侶Ubuntu也在發展它自己的LXD容器技術。這些競爭對手多少都在撕扯Docker封閉的生態系統。在Docker的世界裏,所有的東西都要圍繞Docker registry來運行,你要麼適用Docker所提供的公共服務,要不在自己的數據中
心中部署一套,這並不是免費的。

  1. Docker有風險,入市需謹慎

和任何一種新興的技術一樣,你需要循序漸進。從技術的角度來說,你需要了解很多該做的和不該做的,但最重要的一點,這不僅僅是幾行代碼那麼簡單,你進入的是一個生態,而這個社區可能並不適合你。
轉自:http://geek.csdn.net/news/detail/89692

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章