您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Docker的底層實現所依賴的關鍵技術是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
底層技術
Docker是用Go編寫的,它利用了幾個Linux內核特性來提供我們所看到的功能。
名稱空間
Docker利用一種稱為名稱空間的技術來提供我們稱之為容器的隔離工作空間。運行容器時,Docker會為該容器創建一組名稱空間。
這提供了一個隔離層:容器的每個方面都在其自己的名稱空間中運行,并且在其外部沒有訪問權限。
Docker使用的一些名稱空間包括:
pid命名空間:用于進程隔離(pid:進程ID)。
網絡名稱空間:用于管理網絡接口(網絡:網絡)。
ipc名稱空間:用于管理對ipc資源的訪問(ipc:進程間通信)。
mnt命名空間:用于管理裝入點(mnt:mount)。
uts名稱空間:用于隔離內核和版本標識符。(UTS:Unix分時系統)。
對照組
Docker還使用了另一種稱為cgroups或control Group的技術。隔離運行應用程序的關鍵是讓它們只使用您想要的資源。這確保了容器是主機上良好的多租戶公民。控制組允許Docker將可用硬件資源共享給容器,并在需要時設置限制和約束。例如,限制特定容器的可用內存。
聯合文件系統
Union文件系統,或UnionFS,是通過創建層來操作的文件系統,使它們非常輕量級和快速。Docker使用union文件系統為容器提供構建塊。Docker可以使用多種union文件系統變體,包括:AUFS、btrfs、vfs和DeviceMapper。
容器格式
Docker將這些組件組合成我們稱之為容器格式的包裝器。默認的容器格式稱為libcontainer。Docker還支持使用LXC的傳統Linux容器。將來,Docker可能支持其他容器格式,例如,通過與BSD監獄或Solaris區域集成。
關于Docker的底層實現所依賴的關鍵技術是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。