国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Docker 容器生命周期 架構 以及和VM之間的差異詳解

瀏覽:3日期:2024-11-14 10:46:07

容器的生命周期

容器運行時的生命周期

容器是一組具有隔離特性的進程集合,在使用 docker run 的時候會選擇一個鏡像來提供獨立的文件系統并指定相應的運行程序。這里指定的運行程序稱之為 initial 進程,這個 initial 進程啟動的時候,容器也會隨之啟動,當 initial 進程退出的時候,容器也會隨之退出。

因此,可以認為容器的生命周期和 initial 進程的生命周期是一致的。當然,因為容器內不只有這樣的一個 initial 進程,initial 進程本身也可以產生其他的子進程或者通過 docker exec 產生出來的運維操作,也屬于 initial 進程管理的范圍內。當 initial 進程退出的時候,所有的子進程也會隨之退出,這樣也是為了防止資源的泄漏。

但是這樣的做法也會存在一些問題,首先應用里面的程序往往是有狀態的,其可能會產生一些重要的數據,當一個容器退出被刪除之后,數據也就會丟失了,這對于應用方而言是不能接受的,所以需要將容器所產生出來的重要數據持久化下來。容器能夠直接將數據持久化到指定的目錄上,這個目錄就稱之為數據卷。

數據卷有一些特點,其中非常明顯的就是數據卷的生命周期是獨立于容器的生命周期的,也就是說容器的創建、運行、停止、刪除等操作都和數據卷沒有任何關系,因為它是一個特殊的目錄,是用于幫助容器進行持久化的。簡單而言,我們會將數據卷掛載到容器內,這樣一來容器就能夠將數據寫入到相應的目錄里面了,而且容器的退出并不會導致數據的丟失。

通常情況下,數據卷管理主要有兩種方式:

Docker 容器生命周期 架構 以及和VM之間的差異詳解

第一種是通過 bind 的方式,直接將宿主機的目錄直接掛載到容器內;這種方式比較簡單,但是會帶來運維成本,因為其依賴于宿主機的目錄,需要對于所有的宿主機進行統一管理。

第二種是將目錄管理交給運行引擎。

容器項目架構

moby 容器引擎架構

moby 是目前最流行的容器管理引擎,moby daemon 會對上提供有關于容器、鏡像、網絡以及 Volume的管理。moby daemon 所依賴的最重要的組件就是 containerd,containerd 是一個容器運行時管理引擎,其獨立于 moby daemon ,可以對上提供容器、鏡像的相關管理。

containerd 底層有 containerd shim 模塊,其類似于一個守護進程,這樣設計的原因有幾點:

首先,containerd 需要管理容器生命周期,而容器可能是由不同的容器運行時所創建出來的,因此需要提供一個靈活的插件化管理。而 shim 就是針對于不同的容器運行時所開發的,這樣就能夠從 containerd 中脫離出來,通過插件的形式進行管理。

其次,因為 shim 插件化的實現,使其能夠被 containerd 動態接管。如果不具備這樣的能力,當 moby daemon 或者 containerd daemon 意外退出的時候,容器就沒人管理了,那么它也會隨之消失、退出,這樣就會影響到應用的運行。

最后,因為隨時可能會對 moby 或者 containerd 進行升級,如果不提供 shim 機制,那么就無法做到原地升級,也無法做到不影響業務的升級,因此 containerd shim 非常重要,它實現了動態接管的能力。

Docker 容器生命周期 架構 以及和VM之間的差異詳解

上面是只是針對于 moby 進行一個大致的介紹。

容器 VS VM

容器和 VM 之間的差異

Docker 容器生命周期 架構 以及和VM之間的差異詳解

VM 利用 Hypervisor 虛擬化技術來模擬 CPU、內存等硬件資源,這樣就可以在宿主機上建立一個 Guest OS,這是常說的安裝一個虛擬機。

每一個 Guest OS 都有一個獨立的內核,比如 Ubuntu、CentOS 甚至是 Windows 等,在這樣的 Guest OS 之下,每個應用都是相互獨立的,VM 可以提供一個更好的隔離效果。但這樣的隔離效果需要付出一定的代價,因為需要把一部分的計算資源交給虛擬化,這樣就很難充分利用現有的計算資源,并且每個 Guest OS 都需要占用大量的磁盤空間,比如 Windows 操作系統的安裝需要 10~30G 的磁盤空間,Ubuntu 也需要 5~6G,同時這樣的方式啟動很慢。正是因為虛擬機技術的缺點,催生出了容器技術。

容器是針對于進程而言的,因此無需 Guest OS,只需要一個獨立的文件系統提供其所需要文件集合即可。所有的文件隔離都是進程級別的,因此啟動時間快于 VM,并且所需的磁盤空間也小于 VM。當然了,進程級別的隔離并沒有想象中的那么好,隔離效果相比 VM 要差很多。

總體而言:

容器和 VM 相比,各有優劣,因此容器技術也在向著強隔離方向發展。

以上這篇Docker 容器生命周期 架構 以及和VM之間的差異詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Docker
相關文章:
主站蜘蛛池模板: 韩国美女激情视频一区二区 | 国产自愉自愉全免费高清 | 免费看成人频视在线视频 | 久久久久久久99精品免费 | aaa成人永久在线观看视频 | 日产一一到六区网站免费 | 亚洲免费视 | 国内外成人免费视频 | 男女在线观看视频 | 久色乳综合思思在线视频 | 国产黄色网 | 日本综合久久 | 中文字幕一区二区在线播放 | 久久成人小视频 | 久久精品免费观看久久 | 久久久国产精品免费视频 | 久久极品 | 亚洲欧美日韩综合在线一区二区三区 | 久久99一区 | 手机看片精品高清国产日韩 | 国产午夜精品不卡观看 | 外国成人网在线观看免费视频 | 欧美激情精品久久久久 | 成人国产精品久久久免费 | 欧美特黄一级aa毛片 | 成人五级毛片免费播放 | 成人午夜毛片 | 日本亚洲成高清一区二区三区 | 综合 欧美 亚洲日本 | 九九九免费视频 | 在线观看的毛片 | 亚洲一区二区三区四区五区 | 久久在线免费观看视频 | 国产亚洲欧美日韩综合综合二区 | 老司机亚洲精品影院 | 最新在线步兵区 | 欧美成人亚洲欧美成人 | 久久中文字幕久久久久91 | 国产精品久久成人影院 | 国产一级强片在线观看 | 亚洲成a人片在线观看中文!!! |