docker是linux平台上的一款輕量級虛擬化容器的管理引擎。在全球範圍內,docker還是乙個開源專案,整個專案基於go語言開發,**託管於github**上,並遵從apache 2.0協議。目前,docker可以幫助使用者在容器內部快速自動化部署應用,並利用linux核心特性命名空間(namespaces)及控制組(cgroups)等為容器提供隔離的執行環境。docker借助作業系統層的虛擬化實現資源的隔離,因此docker容器在執行時與虛擬機器(vm)的執行有很大的區別,docker容器與宿主機共享同乙個作業系統,不會有額外的作業系統開銷。這樣的優勢很明顯,因而大大提高了資源利用率,並且提公升了i/o等方面的效能。
眾多新穎的特性以及專案本身的開放性,導致docker在不到兩年的時間裡迅速獲得了諸多廠商的青睞,其中更是包括google、microsoft、vmware等行業領航者。google在2023年6月推出了kubernetes,宣布支援docker容器的排程管理,而2023年8月microsoft則宣布azure上支援kubernetes,隨後傳統虛擬化巨頭vmware宣布與docker強強合作。2023年9月中旬,docker更是獲得4000萬美元的c輪融資,以推動分布式應用的發展。
目前,docker的前景被普遍看好。未來的雲計算領域乃至整個it領域,docker都必將扮演不可或缺的角色。為了幫助大家更好地認識docker、理解docker並掌握docker,本書從docker原始碼的角度出發,詳細介紹docker的架構、docker的執行以及docker的特性。本章主要介紹docker架構。
本書關於docker的分析均基於docker 1.2.0版本的原始碼。
本章目的是在理解docker原始碼的基礎上分析docker架構,分析過程主要按照以下三個部分進行:
docker的總架構圖。
docker架構內部各模組功能與實現的分析。
通過具體的docker命令,闡述docker的執行流程。
初識Rust(一) 引言
rust 是乙個全新的程式語言,專注於效能,並行和記憶體安全。rust的創始人通過從零開始並結合現代程式語言的設計元素來建立乙個語言,避免了很多傳統語言需要應對的很多 baggage 向後相容需求 相反,rust可以融合有表現力的語法和高層語言的靈活性與前所未有的控制和底層語言的效能。選擇一款程式語...
AOP之一 引言
本文 自 軟體設計因為引入物件導向思想而逐漸變得豐富起來。一切皆為物件 的精義,使得程式世界所要處理的邏輯簡化,開發者可以用一組物件以及這些物件之間的關係將軟體系統形象地表示出來。而從物件的定義,進而到模組,到元件的定義,利用物件導向思想的封裝 繼承 多型的思想,使得軟體系統開發可以向搭建房屋那樣,...
軟體測試系列之(1) 引言
畢業至今,從事軟體測工作已將近一年。期間,在同事的熱情幫助和悉心指導下,對軟體測試有了一定的認識和理解。現將自己的一些體會記錄下來,算做是對自己工作的乙個階段性總結。本總結計畫以 軟體測試 為主題,圍繞 軟體測試過程 測試用例 軟體缺陷 效能測試 等幾個方面進行論述。軟體測試過程 主要對軟體測試的整...