关于Docker你应该知道的10件事
如果你在企業IT工作,那你會聽說過 Docker。即使在是像 Puppet、Hadoop 和 MongoDB 這樣的熱門技術中,Docker 也會脫穎而出。但正是因為 Docker 正處于炒作期,因此這并不意味著它適合你。正如我們 Tech Pro Research 分析中指出,“不管你的公司是否給了 Docker 一個肯定的‘可能’,需要警惕。”
但是,在你下載 Docker 并使用起來之前,有10件事情是你應該對這項超人氣容器技術應該了解的。
1. Docker 是一種打包和分發軟件的方式
一個現代的軟件系統包括許多部分,包括二進制文件、庫文件、配置文件和依賴性。將這些不同的組件裝成一臺機器可不是一件容易的事情,但你“出貨”這款軟件的時候就更加復雜了。一旦你出貨了你的軟件,你就需要找到一種方式,將所有這些東西打包到一起、把它們放到需要運行的地方。Docker 就是這樣一種容器技術,讓打包軟件以及所有組件之間的依賴性、提供給開發者、分期或者生產、或者發送到需要運行的地方,所有這些變得非常輕松。
2. Docker并不是特別新的技術
Docker 問世只有短短幾年時間,但是容器技術已經伴隨我們有幾十年了。雖然容器在大型機時代很有用處,但是 Docker 現在發揮才能是受很多因素影響的,包括 Linux 日益突出、虛擬化技術的普及、以及云對操作系統重要性的侵蝕。
3. 幾乎每個人都提供了 Docker
不管你選擇的廠商恰好是誰,幾乎這些廠商100%都支持 Docker。從 Amazon Web Services 到 Red Hat,再到 Google,人人都愛 Docker。
4. Docker 并不只是面向 Linux
Docker 扎根于 Docker,但是微軟把它發揚光大。或者它一定會如此。Docker 依賴于像 Linux Containers(LXC)這樣的 Linux 技術,以及 cgroups 和命名空間功能,這些在 Windows 尚不存在。因此微軟正在奮力構建這之間的掛接,使得 Docker 容器也能夠運行在 Windows Server 上。微軟在 Windows 上運行自己的容器技術已經有多年時間了,但是微軟正在擴大范圍,也支持 Docker 這個社區標準。
5. Docker 讓你分配特定量的 CPU、內存和磁盤資源給每個進程,就像虛擬機
在 Docker 的核心是 Linux cgroups(控制組),提供計算和限制容器使用 CPU、內存、網絡、磁盤資源數量的方法。這提供了一些虛擬化的好處,例如能夠分配出一臺計算機給少量的資源,這樣你就不用讓一個進程占用所有計算機讓其他進程沒有資源可用——但是這并不會帶來 VMware 那樣沉重的開銷或者成本。
6. Docker 比啟動一個虛擬機快(微秒對分鐘)
如果你想要在一臺服務器上運行多個任務,那么傳統的方法是將其劃分為多個虛擬機,使用每個虛擬機來運行一個任務。但是虛擬機啟動很慢,因為它們必須啟動整個操作系統,這要花上幾分鐘的時間。而且這會占用大量資源,因為每個虛擬機都需要運行一個完整的操作系統實例。容器則提供了某種類似的行為,但是速度更快一些,因為啟動一個容器就像啟動一個進程。Docker 的開銷也更少——實際上不會多過一個進程。
7. 但是 Docker 不消滅掉虛擬機
Docker 并不是虛擬機的對等替代物,因為它要求你所有的容器共享相同的底層操作系統。這意味著,例如你不能在同一臺服務器上同時運行 Windows 和 Linux 應用。而且,隨著 Docker 容器脫穎而出,它的安全隔離要弱于虛擬機,這也使得它成為某種多租戶的不恰當的選擇。
8. Docker 的開發速度相當迅猛
登上 Docker 這趟列車可不像是乘坐蒸汽機,而更像是跳上了日本子彈頭火車,它以 250 MPH 的速度向你呼嘯而來。考慮到 Docker 只有一年半的 API 已經有了15個修訂版本,你會知道它變化地有多快。雖然 Docker“已經成熟,因為它正在成長為一款穩定的、企業值得使用的軟件”,但是它仍然沒有能持續10年的支持承諾,這通常是企業對他們的軟件的期望。
9. Docker 正面臨日益激烈的競爭
隨著 Docker 越來越受歡迎,它不可避免地要面臨競爭。例如,CoreOS 最近發布了一個與之競爭的Docker 運行時間,Rocket 和 Linux 青睞的 Ubuntu 也有自己的 LXD 容器項目。這些和其他競爭似乎都在指責 Docker 封閉的生態系統。在 Docker 的世界,所有都依賴于 Docker 注冊。你必須依賴公司的注冊表,在你自己的數據中心運行一個 Docker 拷貝,這不是免費的。
10. 你應該謹慎行事
正如對待任何新技術,你可能會在使用 Docker 之間考慮考慮。從技術的角度來看,你應該在逐漸熟悉在 Docker 容器中運行應用的同時考慮哪些該做哪些不該做。但這不僅僅是代碼。正如正面所說,Docker 的社區可能并不適合你。你應該加入社區——參加聚會、閱讀、并加入到郵件列表中,等等——并決定你是否希望在 Docker 上投入你的時間。
不管你是以何種方式接觸到 Docker,容器技術都已經來臨。Docker 使得現代計算中復雜的東西變得簡化了。Docker 是容器包的領導者,你需要考慮它的調卷。這些條款是什么取決于你和你企業基礎設施的狀態。
本文轉自 運維小當家 51CTO博客,原文鏈接:http://blog.51cto.com/solin/1886107,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的关于Docker你应该知道的10件事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos安装Xen总结
- 下一篇: Node.js使用fs.renameSy