🎬 博客主頁:博主鏈接
🎥 本文由 M malloc 原創,首發于 CSDN🙉
🎄 學習專欄推薦:LeetCode刷題集
🏅 歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
📆 未來很長,值得我們全力奔赴更美好的生活?
文章目錄
- 😇本章詳情
- 😇Jail時代
- 😇1979 年 貝爾實驗室發明 chroot
- 😇2000 年 FreeBSD 4.0 發行 FreeBSD Jail
- 😇2001 年 Linux VServer 發行
- 😇2004 年 Solaris Containers 發行
- 😇云時代
- 😇2006 年 google 推出 Process Containers
- 😇2008 年 LXC 推出
- 😇2011 年 CloudFoundry 推出 Warden
- 😇2013 年 LMCTFY 啟動
- 😇2013 年 Docker 推出到風靡全球
- 😇云原生時代
- 😇Google &Docker 競爭
- 😇2013 年 CoreOS 發布和 Docker 由合作終止
- 😇2014 年 6 月 Google 發布開源的容器編排引擎 Kubernetes(K8S)
- 🤣本文小結
😇本章詳情
🐤本篇文章將講述Docker容器的技術發展史
😇Jail時代
😁容器不是一個新概念或者新技術,很早就有了,只是近幾年遇到了云計算,整個技術被徹底引爆了。
😇1979 年 貝爾實驗室發明 chroot
📑chroot 系統調用是在 1979 年開發第 7 版 Unix 期間引入的。貝爾實驗室在 Unix V7 的開發過程中,發現當一個系統軟件編譯和安裝完成后,整個測試環境的變量就會發生改變,下一次測試需要重新配置環境信息。
設計者們思考能否隔離出來一個獨立的環境,來構建和搭建測試環境,所以發明了
chroot,可以把一個進程的文件系統
隔離起來
chroot 系統調用可以將進程及其子進程的根目錄更改為文件系統中的新位置。隔離以
后,該進程無法訪問到外面的文件,因此這個被隔離出來的新環境像監獄一樣,被命
名為 Chroot Jail (監獄)。后續測試只需要把測試信息放到 Jail 中就可以完成測試了。
這一進步是進程隔離的開始:為每個進程隔離文件訪問。所以 chroot 可以認為是容器
技術的鼻祖。
😇2000 年 FreeBSD 4.0 發行 FreeBSD Jail
前言
2000 年,當時一家小型共享環境托管提供商提出了 FreeBSD Jail,以實現其服務與其客戶服務之間的明確分離,以實現安全性和易于管理。每個 Jail 都是一個在主機上運行的虛擬環境,有自己的文件、進程、用戶和超級用戶帳戶,能夠為每個系統分配一個IP 地址。
FreeBSD Jail 不僅僅有 chroot 的文件系統隔離,并且擴充了獨立的
進程和網絡空間
。
😇2001 年 Linux VServer 發行
💐與 FreeBSD Jails 一樣,Linux VServer 是一種監獄機制,可以對計算機系統上的資源
(文件系統、網絡地址、內存)進行分區。
😇2004 年 Solaris Containers 發行
2004 年, Solaris Containers 的第一個公開測試版發布,結合系統資源控制和區域進
行隔離,并添加了快照和克隆能力。
這個時期的進程隔離技術大多以 Jail 模式為核心,基本實現了進程相關資源的隔離操作,沒有更大的應用場景發展有限。
😇云時代
2006 年,
Google 101 計劃提出云
的概念,對當前的主流開發模式產生深遠的影響。也許以后我們會更多考慮如果出現比現在多 1000 倍, 10000 倍的數據量的時候,我們該如何處理?要想讓”云”發揮潛能,與此相關的編程和操作就應該與使用互聯網一樣簡單。隨后,亞馬遜、IBM 等行業巨頭也陸續宣布各自的“云”計劃,宣告“云”技術時代的來臨。
云計算需要處理海量數據、超高并發、快速擴展等問題,此時不僅僅需要隔離還需要能夠對資源進行控制和調配。
😇2006 年 google 推出 Process Containers
提示
Process Containers(由 Google 于 2006 年推出)旨在限制、統計和隔離一組進程的
資源使用
(CPU、內存、磁盤 I/O、網絡)。一年后它更名為“Control Groups (cgroups)”,并最終合并到 Linux 內核 2.6.24
😇2008 年 LXC 推出
LXC(Linux 容器)是 Linux 容器管理器的第一個、最完整的實現。它是在 2008 年使
用cgroups
和Linux 命名空間
實現的,它可以在單個 Linux 內核上運行,不需要任何
補丁。
同年谷歌推出 GAE(Google App Engine),首次把開發平臺當做一種服務來提供,采
用云計算技術,跨越多個服務器和數據中心來虛擬化應用程序。
同時 Google 在 GAE 中使用了 Borg (Kubernetes 的前身)來對容器進行編排和調度。
LXC 和 Borg 其實就相當于最早的 docker 和 k8s.
😇2011 年 CloudFoundry 推出 Warden
?2011 年啟動了 Warden,早期使用 LXC,后來替換為自己的實現,直接對 Cgroups 以及 Linux Namespace 操作。開發了一個
客戶端-服務器模型
來管理跨多個主機的容器
集合,并且可以管理 cgroups、命名空間和進程生命周期。
😇2013 年 LMCTFY 啟動
概要
🌕Let Me Contain That For You (LMCTFY) 于 2013 年作為 Google 容器堆棧的開源版本啟動,提供 Linux 應用程序容器。應用程序可以“容器感知”,創建和管理它們自己的
子容器
。在谷歌開始和 docker 合作,后續轉向了 docker 公司的 libcontainer,LMCTFY 的于 2015 年停止。
😇2013 年 Docker 推出到風靡全球
Docker 最初是一個叫做 dotCloud 的 PaaS 服務公司的內部項目,后來該公司改名為Docker。Docker 在初期與 Warden 類似,使用的也是 LXC,之后才開始采用自己開發的 libcontainer 來替代 LXC,它是將應用程序及其依賴打包到幾乎可以在任何服務器上運行的容器的工具。與其他只做容器的項目不同的是,Docker 引入了一整套管理容器的生態系統,這包括高效、分層的容器鏡像模型、全局和本地的容器注冊庫、清晰的 REST API、命令行等等。
Docker 最初是一個叫做 dotCloud 的 PaaS 服務公司的內部項目,后來該公司改名為 Docker。Docker 在初期與 Warden 類似,使用的也是 LXC,之后才開始采用自己開發 的 libcontainer 來替代 LXC,它是將應用程序及其依賴打包到幾乎可以在任何服務器 上運行的容器的工具。與其他只做容器的項目不同的是,Docker 引入了一整套管理容 器的生態系統,這包括高效、分層的容器鏡像模型、全局和本地的容器注冊庫、清晰 的 REST API、命令行等等。
😇云原生時代
😇Google &Docker 競爭
😇2013 年 CoreOS 發布和 Docker 由合作終止
🌞技術革命帶來新的市場機遇,CoreOS 也是其中的一員,在容器生態圈中貼有標簽:專為容器設計的操作系統 CoreOS。作為互CoreOS+Docker 曾經也是容器部署的靈魂伴侶。CoreOS 為 Docker 的推廣和源碼社區都做出了巨大的貢獻。
Docker 生態擴張
,與最開始是“一個簡單的基礎單元”不同,Docker 也在通過開發或收購逐步完善容器云平臺的各種組件,準備打造自己的生態圈,而這與 CoreOS 的布局有直接競爭關系。
😇2014 年 6 月 Google 發布開源的容器編排引擎 Kubernetes(K8S)
容器只是解決了容器化,分發問題,但是一個軟件的
網絡問題、負載均衡問題、監控、部署、更新、鏡像管理、發布等很多問題
并沒有有效的解決。
Google 內部調度系統 Borg 已經擁有 10 多年的使用容器經驗,在 2014 年 6 月推出了
開源的 K8S,可以支持對容器的編排和管理,完成生態的閉環。
同年 7 月,微軟、Red Hat、IBM、Docker、CoreOS、 Mesosphere 和 Saltstack 等公司,相繼加入 K8S。之后的一年內,VMware、HP、Intel 等公司,也陸續加入。
🤣本文小結
好啦今日的分享到這里就結束啦,我是愛你們的M malloc希望可以幫助到你們噢,最后別忘記三連啦!!