snap不是docker,snap是ubuntu 16.04 LTS發(fā)布時(shí)引入的新應(yīng)用格式包,而docker是一個(gè)開源的應(yīng)用容器引擎,開發(fā)者可以使用snap來安裝docker。
本文操作環(huán)境:ubuntu 18.04系統(tǒng)、Docker 20.10.11版、Dell G3電腦。
snap是docker嗎?
snap不是docker。
snap應(yīng)用介紹:
如果你在使用Ubuntu 18.04/20.04 LTS版本的Ubuntu系統(tǒng),會(huì)發(fā)現(xiàn)系統(tǒng)里面多了一個(gè)應(yīng)用格式包——.snap包。
Snap包是Ubuntu 16.04 LTS發(fā)布時(shí)引入的新應(yīng)用格式包。目前已流行在Ubuntu且在其他如debian、Arch linux、Fedora、Kaili Linux、openSUSE、Red Hat等Linux發(fā)行版上通過snapd來安裝使用snap應(yīng)用。
當(dāng)你在安裝完snap后,你會(huì)發(fā)現(xiàn)在在根目錄下會(huì)出現(xiàn)如/dev/loop0的掛載點(diǎn),這些掛載點(diǎn)正是snap軟件包的目錄。Snap使用了squashFS文件系統(tǒng),一種開源的壓縮,只讀文件系統(tǒng),基于GPL協(xié)議發(fā)行。一旦snap被安裝后,其就有一個(gè)只讀的文件系統(tǒng)和一個(gè)可寫入的區(qū)域。應(yīng)用自身的執(zhí)行文件、庫(kù)、依賴包都被放在這個(gè)只讀目錄,意味著該目錄不能被隨意篡改和寫入。
squashFS文件系統(tǒng)的引入,使得snap的安全性要優(yōu)于傳統(tǒng)的Linux軟件包。同時(shí),每個(gè)snap默認(rèn)都被嚴(yán)格限制(confined),即限制系統(tǒng)權(quán)限和資源訪問。但是,可通過授予權(quán)限策略來獲得對(duì)系統(tǒng)資源的訪問。這也是安全性更好的表現(xiàn)。
Snap可包含一個(gè)或多個(gè)服務(wù),支持cli(命令行)應(yīng)用,GUI圖形應(yīng)用以及無單進(jìn)程限制。因此,你可以單個(gè)snap下調(diào)用一個(gè)或多個(gè)服務(wù)。對(duì)于某些多服務(wù)的應(yīng)用來說,非常方便。前面說到snap間相互隔離,那么怎么交換資源呢?答案是可以通過Interface(接口)定義來做資源交換。interface被用于讓snap可訪問OpenGL加速,聲卡播放、錄制,網(wǎng)絡(luò)和HOME目錄。Interface由slot和plug組成即提供者和消費(fèi)者。
docker介紹:
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的?Linux或windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
我們可以在Ubuntu18.04中使用snap安裝docker。
推薦學(xué)習(xí):《docker視頻教程》