docker – 你應該知道的10件事


docker-logo

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

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

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

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

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

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

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

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

3. 基本上大家都支持Docker

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

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

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

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

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

6. 啟動Docker容器比啟動虛擬機快的多的多(毫秒級vs分鍾級)

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

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

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

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

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

注:現在Docker的版本已經是1.12。

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

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

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

和任何一種新興的技術一樣,你需要循序漸進。從技術的角度來說,你需要了解很多該做的和不該做的。但最重要的一點,這不僅僅是幾行代碼那么簡單,你進入的是一個生態,而這個社區可能並不適合你。你應該先多參加一些社區活動,如:Meetup,郵件列表,訂閱些微信公眾號啥的;慢慢對它進行了解,然后再決定是否應該投入更多的時間。

無論Docker怎樣,容器技術都會繼續盛行下去,因為容器讓現代軟件技術和計算機技術變的更加簡單易用。而在容器這個領域里,Docker是毋庸置疑的領導者,你沒有辦法回避這個事實。但是,到底以怎樣的方式接受,接受多少,多快,你一定要根據自己企業的現狀來考慮。

 


相關閱讀:

docker4dotnet #1 前世今生 & 世界你好
http://devopshub.cn/2016/07/08/docker4dotnet-1-overview-and-helloworld/

docker4dotnet #2 容器化主機
http://devopshub.cn/2016/07/13/docker4dotnet-2-docker-machine-create-dockerized-hosts/

DockerCon 2016 – 微軟帶來了什么?
http://devopshub.cn/2016/06/22/dockercon-2016-with-microsoft/

Real-World Docker: 10 Things We’ve Learned
http://www.slideshare.net/rightscale/webinar-real-world-docker-2014-1209-v3-1

(本文在SlideShare上可能無法正常訪問,可以通過在devopshub訂閱號中輸入d4dtools獲取)

Why Docker… and why now?
http://www.techrepublic.com/article/why-docker-and-why-now/

Docker and Microsoft partner to bring container applications across platforms
http://news.microsoft.com/2014/10/15/dockerpr/#sm.000uatmy5115te5avb62jyeq9a5fg


請關注微信公眾號 【devopshub】,獲取更多關於DevOps研發運維一體化的信息

qrcode_for_gh_b7c158df1fd1_430


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM