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

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

來源:廣州達(dá)內(nèi)教育        時間:2023-05-30        熱度:31℃        返回列表

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


  容器簡史


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


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




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


  容器技術(shù)于2001年通過Jacques

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


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


  2014年,LXC

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


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


  LXD–LXC容器的升級


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


  Docker–集裝箱化應(yīng)用程序


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


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


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

電話咨詢

電話咨詢

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

回到頂部