一、docker概念
本節要點
什麼是容器與映象?如何構建容器與映象
容器的生命週期
容器專案的架構
容器 vs.vm
1.容器
定義:乙個檢視隔離、資源可限制、獨立檔案系統的程序集合
(1)檢視隔離 指的是容器之間的系統資源是是隔離的,乙個容器中你只能看見一部分程序,每個容器有獨立的主機名。
(2)資源可限制 指的是可以給每個容器限制資源,比如2個cpu 2g記憶體
(3)獨立檔案系統 指的是每個容器有自己的根目錄,在自己的檔案系統中做增刪改查操作,不會影響到其他容器中的檔案。
2.映象
定義:容器執行所需要的所有檔案集合稱為容器映象
3.如何構建和執行映象
(1)dockerfile定義:相當於乙個指令文件,docker可以讀取dockerfile來構建容器。它有自己特定的便利語法糖。
(2)changeset:dockerfile可以描述構建容器的每個步驟,每個步驟對已有檔案系統的操作所帶來的變化,稱為changeset。
當把changeset依次作用到乙個空資料夾就能得到乙個完整的映象。
(這裡最好從構建到執行完整操作一次)
容器就是和系統其它部分隔離開來的程序集合,這裡的其他部分包括程序、網路資源以及檔案系統等。而映象就是容器所需要的所有檔案集合,其具備一次構建、到處執行的特點。
二、容器的生命週期
1.生命週期:容器是一組具有隔離特性的程序集合,再執行時會選擇乙個映象來提供獨立的檔案系統並指定相應的執行程式,稱之為initial程序。initail程序啟動,則容器隨之啟動,initial程序退出,則容器隨之退出。容器的生命週期與initial程序完全相同。
2.容器資料持久化:通過資料卷的方式,掛載到容器內,容器將資料寫入這個特殊的目錄。資料卷不會因為容器的退出而導致資料丟失。
提問,資料卷如何管理?bind的方式或者執行引擎的方式是怎麼管理?這裡最好也實踐一下
三、容器專案架構(這次只是簡單介紹,後面再詳細學)
1.moby:是最流行的容器管理引擎,moby daemon會對上管理容器、映象、網路以及volume的管理。它依賴於containerd。
3.containerd shim:是containerd shim底層的模組,類似於乙個守護程序。
四、容器和vm優劣對比
1.啟動速度:docker快,因為只是程序級別的隔離,沒有作業系統。虛擬機器有作業系統。
2.所占用的計算資源和空間:docker少,虛擬機器因為需要將計算資源交給虛擬化,所以浪費了很多計算自由。空間方面也是很浪費,乙個guest os安裝ubuntu需要5-6g的空間。
3.隔離效果:vm強,每個應用都是完全獨立。但是docker也在向著強隔離方向發展。
容器可以解決物理機裡面,多個程序修改同乙個檔案的衝突情況,比如別人還需要用的檔案被更高階的程序刪掉了,還有多個程序之間會有依賴衝突。
總結:五、自己構建和執行docker
面試系統化準備(四)
1.語氣 自信 2.面試中要自己的能力 態度 1 善於溝通 態度 技術積累 能力 客戶提問的內容沒有方案,經過我的努力,我利用自己的知識積累。我先在現場解決了一部分,並承諾盡快解決剩下的部分,保證了客戶的信心。2 提出方案 能力 持續跟進 態度 會後我迅速做出響應,首先和研發傳遞了客戶的本質需求,其...
Linux 系統化學習系列文章總目錄(持續更新中)
本頁內容都是本人系統化學習linux 時整理出來的。這些文章中,絕大多數命令類內容都是翻譯 整理man或info文件總結出來的,所以相對都比較完整。有些是博主早期的部落格,格式可能有些不美觀,請大家見諒 本人的寫作方式 風格也可能會讓朋友一看就噁心到直接右上角叉叉,對此本人只能say sorry。但...
機器學習面試準備之二 優化方法
梯度下降法是一種最優化方法,用來優化cost function。梯度下降法的最大問題就是會陷入區域性最優,並且每次在對當前樣本計算cost的時候都需要去遍歷全部樣本才能得到cost值,這樣計算速度就會慢很多。現在好多框架中一般使用隨機梯度下降法,它在計算cost的時候只計算當前的代價,最終cost是...