我們爲什麼選擇Docker?Why?

由百折不撓的信念所支持的人的意志,比那些似乎是無敵的物質力量具有更大的威力。——愛因斯坦
在這裏插入圖片描述
插畫來自網絡

什麼是Docker?

Docker 使用Google公司推出的Go語言進行開發實現,基於Linux內核的cgroup,namespace,以及AUFS類的Union FS等技術,對進程進行封裝隔離,屬於操作系統層面的虛擬化技術。
由於隔離的進程獨立於宿主和其他的隔離的進程,因此也稱其爲容器。docker百度百科

Docker能做什麼?

作爲一個測試,我們常常面臨的問題:

  1. 測試環境與開發環境不一致,工單提交後,開發人員經常對我們說:“我這邊是正常的!”
  2. 測試環境的搭建可能因爲JDK的版本不同而失敗等等問題

那麼Docker就可以幫我們解決這一系列問題
docker在QA中的作用

Docker和虛擬機的區別

docker和虛擬機最大的區別就是:不同的虛擬化方案
爲什麼要這麼說呢,我們來看下這張圖就知道了!
在這裏插入圖片描述
搞錯了,重來!
在這裏插入圖片描述
從上圖可以看出來,左面的虛擬機是虛擬化了一整個操作系統(Hyper Vistor 虛擬機服務),而右邊的docker並沒有虛擬化操作系統,而是直接使用宿主機的內核,通過Docker Engine來管理所有的容器和鏡像。

爲什麼要學習Docker

如果Docker相對於虛擬機來說沒有那麼大的優勢,我們爲什麼要花時間來重新學習一個工具呢?
在這裏插入圖片描述
Docker作爲一個新的技術,肯定是有非常多的優點,那麼我們來看看相對於VM,docker的特點。
在這裏插入圖片描述
所以,總結了以下幾點:

  1. docker相對於虛擬機啓動時間快
  2. 硬盤佔用空間小
  3. 性能接近原生,因爲時直接使用宿主機內核
  4. 單機支持上千個容器,而虛擬機一般支持在幾十個左右。

Docker的缺點

docker的缺點就是docker公司如何賺錢?
docker有個缺點就是挑內核,正因爲docker不虛擬內核,而是直接使用宿主機的內核,所以這既是他的優點,也是缺點。

不能用docker做兼容性測試:之前有個人說:我在docker上安裝多個版本的centos系統,然後把我的APP放在不同的系統中跑,是不是可以完成兼容性測試呢?
心目中的理想原型:
在這裏插入圖片描述
但是要知道docker是直接使用宿主機的內核,也就是說,這2個APP所在的系統都是Ubantu4.1.0,也就達不到兼容測試。
所以,如果需要做兼容性測試的話,還是使用虛擬機。

結束

如果本篇博客有任何錯誤,請批評指教,不勝感激 !


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章