純乾貨:21天帶你玩轉容器
阿新 • • 發佈:2018-11-21
純乾貨:21天帶你玩轉容器
可能有些人已經使用過容器,但考慮知識體系的完整性,我們還是從最基本的容器知識開始帶大家進入容器的世界。
首先介紹一下什麼是容器?Docker是一種輕量級的作業系統虛擬化解決方案,它想達到一次構建到處執行,類似於Java虛擬機器的效果,它最初誕生於2013年,是基於go語言的實現,最初是由dotCloud公司的內部一個業餘專案,後來專案開源加入了Linux基金會,然後現在程式碼在github上進行維護,有興趣的同學可以下載下來讀原始碼,這樣會對於大家對Docker的原理的理解會有很大的幫助。Docker的基礎是基於Linux容器技術,在Linux容器技術的基礎上,Docker進行了進一步的封裝,讓大家不去關心容器的管理,使得操作更加便捷。使用者操作Docker容器,就像操作一個快速輕量級的虛擬機器那樣簡單。
從結構上來看,容器和虛擬機器還是有很大不同的。左圖的虛擬機器的Guest層,還有Hypervisor層在Docker上已經被Docker Engine層所取代,在這裡我們需要知道,Guest OS 是虛擬機器安裝的作業系統,是一個完整的系統核心,另外Hypervisor可以理解為硬體虛擬化平臺,它在後Host OS以核心驅動的形式存在。虛擬機器實現資源的隔離的方式是利用獨立的Guest OS,以及利用Hypervisor虛擬化CPU、記憶體、IO等裝置來實現的,對於虛擬機器實現資源和環境隔離的方案,Docker顯然簡單很多。然後Docker並沒有和虛擬機器一樣利用一個獨立的Guest OS執行環境的隔離,它利用的是目前當前Linux核心本身支援的容器方式,實現了資源和環境的隔離,簡單來說,Docker就是利用Namespace 實現了系統環境的隔離,利用了cgroup實現了資源的限制,利用映象例項實現跟環境的隔離。由此可見,Docker有著比虛擬機器更少的抽象層。由於Docker不需要Hypervisor實現硬體資源的虛擬化,所以執行在Docker容器上的程式,直接使用的都是實際物理機的硬體資源。因此在cpu、記憶體、利用率上,Docker將會在效率上具有更大的優勢。此外,Docker直接利用虛擬機器機的系統核心,避免了虛擬機器啟動時所需要的系統引導時間和作業系統執行的資源消耗,利用Docker能夠在幾秒鐘之內啟動大量的容器,是虛擬機器無法辦到的。快速啟動低資源消耗的優點,使Docker在彈性雲平臺自動運維繫統方面具有很好的應用場景。與虛擬機器相比,Docker在以下幾個方面具有很大的優勢,它能夠快速的交付和部署,Docker在整個開發週期都可以完美輔助你實現快速交付,Docker允許開發者本地應用,直接進入到可持續的開發流程中。例如開發者可以使用一個標準映象構建一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署程式碼,Docker可以快速建立容器快速迭代應用程式,整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。此外,容器的啟動時間是秒級的,大量節約開發、測試、部署的時間。還有一個非常關鍵的點,就是Docker能夠高效地部署和擴容,Docker容器幾乎可以在任意平臺上執行,包括虛擬機器、物理機、公有云、私有云、個人電腦、伺服器等,這種相容性,可以讓使用者把一個應用程式從一個平臺直接遷移到另外一個平臺。Docker的相容性和輕量性的特性可以輕鬆的實現負載的動態管理,你可以快速擴容或方便的下線你的應用和服務,這種速度趨近於實時!此外Docker還具有更高的資源利用率,一臺主機上可以執行數千個Docker容器,容器除了執行其應用之外,基本不消耗額外的系統資源,使得應用效能高,系統開銷小,而傳統的虛擬機器方式則需要執行不同的應用,耗費大量的資源,此外Docker還可以有更簡單的管理使用Docker只需要小小的修改就可以替代以往大量的更新工作,所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理!
容器基礎知識已掌握,想要學習得更深入?華為雲DevCloud &雲容器服務聯合重磅出品——21天轉型容器實戰營!依託華為云云容器服務,帶領開發者學習和體驗Docker, kubernetes, Istio等大熱技術!匯聚華為雲容器技術尖端專家,結合CKA認證精編21天課程,理論和實踐雙管齊下,助力開發者打通容器任督二脈,挑戰21天,拿下CKA! 11.20-12.3限時入營,擺好學習姿勢,12.4-12.24學習實踐,闖關打卡,21天見證進步。現在進入華為雲學院(
報名學習吧。