• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構主頁 > 培訓資料 > 嵌入式開發(fā):Linux容器與Docker的發(fā)展歷史
機構主頁 > 培訓資料>嵌入式開發(fā):Linux容器與Docker的發(fā)展歷史

嵌入式開發(fā):Linux容器與Docker的發(fā)展歷史

來源:廣州達內教育        時間:2023-05-30        熱度:39℃        返回列表

  容器是敏捷軟件開發(fā)的中心。他們已經(jīng)從邊緣的開源技術轉向為現(xiàn)代軟件和嵌入式Linux系統(tǒng)提供動力的構建塊。隨著物聯(lián)網(wǎng)(IoT)的出現(xiàn),該領域的先鋒公司現(xiàn)在正在尋找容器,以將DevOps的優(yōu)勢擴展到嵌入式開發(fā)系統(tǒng)的獨特需求。隨著企業(yè)希望擴大其物聯(lián)網(wǎng)環(huán)境的能力,流行的容器技術如LXC或Linux容器和Docker位居榜首。


  容器簡史


  容器作為虛擬機(VMs)的輕量級替代品得到普及。虛擬機是虛擬化硬件服務器,允許用戶在現(xiàn)有主機操作系統(tǒng)上安裝和運行來賓操作系統(tǒng)(OS)。這意味著在任何操作系統(tǒng)環(huán)境中開發(fā)的應用程序都可以在任何系統(tǒng)上運行。


  但是,虛擬機具有很高的開銷、維護成本和較大的映像大小,這可能會將資源過度分配給運行在虛擬機上的操作系統(tǒng)的每個實例。另一方面,容器是虛擬化的軟件環(huán)境,它將應用程序的代碼及其依賴項打包,以便應用程序可以在任何主機上單獨并行運行,并根據(jù)需要分配資源。




  LXC和LXD–操作系統(tǒng)的容器化


  容器技術于2001年通過Jacques

Gélinas的LinuxVServer項目首次引入。這種早期形式的容器技術經(jīng)歷了幾次重新設計,例如添加了cgroup功能,允許在不需要啟動任何虛擬機的情況下限制和優(yōu)先排序資源(CPU、內存、塊I/O、網(wǎng)絡);以及名稱空間隔離功能,該功能允許完全隔離應用程序對操作環(huán)境的視圖,包括進程樹、網(wǎng)絡、用戶ID和裝載的文件系統(tǒng)和名稱空間。


  2008年,IBM工程師添加了一層用戶空間工具,以使嵌入式開發(fā)人員更喜歡該技術。


  2014年,LXC

1.0版本通過利用現(xiàn)有的Linux技術(如seccomp和SELinux)進一步解決了LXC的安全問題,以控制和防止惡意代碼從容器中溢出造成的DoS攻擊。


  LXC容器的工作原理是采用操作系統(tǒng)級虛擬化,允許多個Linux虛擬環(huán)境在共享硬件和基于Linux的操作系統(tǒng)內核上同時運行。這節(jié)省了開銷成本,并允許構建應用程序以跨多種設備類型使用。本質上,LXC專注于系統(tǒng)和操作系統(tǒng)級的容器化,而這正是它們擅長的地方。


  LXD–LXC容器的升級


  LXD被描述為下一代系統(tǒng)容器。它通過可以連接到LXC庫的RESTAPI增強了系統(tǒng)級的容器化。它用Go編寫,創(chuàng)建了一個系統(tǒng)守護進程,應用程序通過HTTPS通過UNIX套接字訪問,進一步擴展了分布式系統(tǒng)可移植性的可能性。LXD構建在LXC之上,并通過內核擴展其功能,而不是獨立于操作系統(tǒng)。它的行為非常類似于帶有虛擬機監(jiān)控程序的VM,但沒有資源開銷。


  Docker–集裝箱化應用程序


  雖然Linux容器主要在系統(tǒng)級,但Docker的重點是應用程序容器化。Docker于2013年推出,最初基于LXC,并添加了用戶友好的工具,以吸引嵌入式開發(fā)人員尋找大型虛擬機的替代品。最終,Docker通過開發(fā)自己的集裝箱化架構與LXC有所不同。


  Docker和LXC共享類似的安全和進程隔離功能,確保運行的進程不會過度利用資源。然而,它們實際上是非常不同的技術——每個Docker容器運行單個虛擬化應用程序引擎,而LXC容器化系統(tǒng)或Linux操作系統(tǒng)用戶區(qū)的不同組件。


  Docker容器打包單個應用程序或應用程序組件,而不是客戶操作系統(tǒng),它有一個直接在主機操作系統(tǒng)上運行的Docker守護程序。此外,在嵌入式開發(fā)中,每個容器化應用程序都是獨立運行的,不會影響主機中同時運行的任何其他應用程序。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部