1. 程式人生 > >純幹貨:21天帶你玩轉容器

純幹貨:21天帶你玩轉容器

公有 docker容器 興趣 容器技術 process 使用 公司 秒級 驅動

純幹貨: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天見證進步。現在進入華為雲學院( https://edu.huaweicloud.com/ )
報名學習吧。

純幹貨:21天帶你玩轉容器