• 招生咨詢熱線: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)教育        時(shí)間:2023-05-30        熱度:28℃        返回列表

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


  容器簡(jiǎn)史


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


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




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


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

Gélinas的LinuxVServer項(xiàng)目首次引入。這種早期形式的容器技術(shù)經(jīng)歷了幾次重新設(shè)計(jì),例如添加了cgroup功能,允許在不需要啟動(dòng)任何虛擬機(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)級(jí)虛擬化,允許多個(gè)Linux虛擬環(huán)境在共享硬件和基于Linux的操作系統(tǒng)內(nèi)核上同時(shí)運(yùn)行。這節(jié)省了開銷成本,并允許構(gòu)建應(yīng)用程序以跨多種設(shè)備類型使用。本質(zhì)上,LXC專注于系統(tǒng)和操作系統(tǒng)級(jí)的容器化,而這正是它們擅長(zhǎng)的地方。


  LXD–LXC容器的升級(jí)


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


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


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


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


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

電話咨詢

電話咨詢

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

回到頂部