1. 程式人生 > 實用技巧 >Docker的個人理解

Docker的個人理解

檢視源影象

我認為docker其實就是個虛擬機器,只不過和vmware有不同,docker包含的內容很少,比如裝系統用的ubuntu的映象1+G,而ubuntu的docker只有不到100M,比如ubuntu安裝好了之後直接可以apt-get install vim 來安裝vim,可是在docker裡面就沒有,就像微控制器的最小系統,比如你想弄個什麼東西,你需要完全把外圍電路自己設計好,沒有現成的可用。

解釋一下我理解的倉庫,映象,容器三者的關係。先說倉庫,倉庫倉庫,不就是倉庫嘛,日常生活中的倉庫,用來存放東西,這裡的倉庫就是存放映象的倉庫。典型的倉庫就是HUB Docker,
https://hub.docker.com/
就和github一個意思。因為Hub Docker是個國外的網站,所以國內訪問會很慢,你要下載一個東西特別慢,為了解決這個,有了阿里雲加速服務,他將Hub Dockers的映象複製一份,放到阿里雲,放到國內,所以下載速度就快了,那有個問題,我怎麼設定下載的時候是從hub Docker下載呢還是從阿里雲下載呢,這個百度搜索一下,這個很容易的。

ok,倉庫倉庫解釋完了,阿里雲加速說完了,下面介紹映象,這個映象我覺得就和電腦安系統的那個映象一個意思,只不過一個大一個小,這個映象可能只有最小系統,可能是最小系統+vim+net-tools+gcc,也可能是最小系統+mysql,其實就是大家做了什麼東西,然後把這個東西連同最小系統一個封裝到一塊,安裝上這個映象之後就可以直接用了。可以把映象當作c++裡面的類的感覺。

然後是容器,這個容器就想想成虛擬機器,虛擬機器得安裝系統吧,通過映象安裝系統,容器也得有映象,用的就是上面提到的映象,一個映象可以弄出來好多個容器,一個iso作業系統映象也可以安裝到好多個電腦上。一個意思。只不過虛擬機器vmware的安裝過程很慢,而docker特別快,快到你不敢認為這是個虛擬機器?因為太快了。你安裝一個作業系統都好好多分鐘,而建個容器幾秒鐘就ok, 而且容器還特別小,所以這也就是docker為什麼這麼受歡迎。其實也可以把容器比作類的例項。

docker我覺得很重要的一個點就是可以把環境封裝了。比如你寫了一個程式,在你電腦上跑啥事沒有,別人的電腦就不行,你會想1可能是那個人電腦的問題,2有可能是程式的問題。結果排查了半天發現你們可能用的一個依賴包版本不同,比如這個版本預設啟動,下個版本預設不啟動了,當然只是舉個例子,這個排查的時間可能會很長,而且可能會非常的難受,你坐那半天都找不出來為啥。結果突然發現,你真的能氣死。那就考慮我不給你這個程式,我把環境都給你,比如我用的虛擬機器寫的,我把我虛擬機器匯出來,vmware就可以,然後在其他人的電腦上用你匯出的映象新建一個虛擬機器,這樣不就可以正常運行了嘛,這個方法可以是可以,但是會出現另一個問題,可能虛擬機器到處的映象檔案太大了,這個是真的可能,而且百度網盤是svip上傳最大的檔案也就20G,那如果你匯出的映象超過20G該怎麼辦呢,我就遇到了這個問題,還沒想好怎麼解決,有人可能會說用行動硬碟呀,可如果我在北京,他在上海呢,我不能帶個硬碟過去特意考個檔案吧,除非我腦子瓦特了。所以docker這個就很好,你把你寫的程式弄到一個docker裡面,當然這一步很難,也是docker最重要的部分了吧,然後把這個docker發給別人,這個docker可比剛才的映象小太多太多了,這不就能方便的遠距離傳送嘛,而且還可以上傳的雲端,比如阿里雲,這樣誰用誰都可以下載(當然你也可以設定為私有),也不用你挨個人發。多方便呢。

除了docker很輕量級,另外一個就是docker很快,尤其是船建立容器這一步就快的離譜,所以刪除,新建都很灑灑水。

當然,docker肯定遠不止這些,這只是我個人目前對docker的一個理解,僅限於docker自身,而沒有將docker和什麼K8s聯絡起來。

看完我寫的文章的人都是世界上最帥的和最漂亮的!!!

今天北京的天氣不咋樣。。。