【微服務架構 - Docker 容器化引擎】02 為什麼要使用 Docker
因為 Docker 有很多的優勢啊。
更高效的利用系統資源
由於容器不需要進行硬體虛擬以及執行完整作業系統等額外開銷,Docker 對系統資源的利用率很高。無論是應用執行速度、記憶體損耗或者檔案儲存速度,都要比傳統虛擬化技術更高效。因此,相比虛擬化技術,一個相同配置的主機,往往可以執行更多數量的應用。
更快速的啟動時間
傳統的虛擬機器技術啟功應用服務往往需要數分鐘,而 Docker 容器應用,由於直接運行於宿主核心,無需啟動完整的作業系統,因此可以可以做到秒級、甚至是毫秒級的啟動時間 。大大節約了開發、測試、部署的時間。
一致的執行環境
開發過程中一個常見的問題是環境一致性問題。由於開發環境、測試環境、生產環境不一致,導致有些 bug 並未在開發過程中發現。而 Docker 的映象提供了除核心外完整的執行時環境,確保了應用環境一致性,從而不會再出現 這段程式碼在我機器上沒問題呀
持續交付和部署
對於開發和運維 (DevOps) 人員來說,最希望的就是一次建立或配置,可以在任意地方執行。
使用 Docker 可以通過定義應用映象來實現持續整合、持續交付、部署。開發人員可以通過 Dockerfile 來進行映象構建,並結合持續整合(Continuous Integration) 系統進行繼承測試,而運維人員可以直接在生產環境中快速部署該映象,甚至結合持續部署(Continuous Delivery/Deployment) 系統進行自動部署。
而且使用 Dockerfile 使映象構建透明化,不僅僅開發團隊可以理解應用執行環境,也方便運維團隊理解應用執行所需條件,幫助更好的生產環境中部署該映象。
更輕鬆的維護和擴充套件
Docker 使用的分層儲存已經映象的技術,使得應用重複部分的複用更為容易,也使得應用的維護更新更加簡單,基於基礎映象進一步擴充套件映象也變得非常簡單。此外,Docker 團隊各個開源專案團隊一起維護了一大批高質量的官方映象,既可以直接在生產環境中使用,又可以作為基礎進一步定製,大大的降低了應用服務的映象製作成本。
對比傳統虛擬機器總結
特性 | 容器 | 虛擬機器 |
---|---|---|
啟動 | 秒級 | 分秒級 |
硬碟使用 | 一般為 MB | 一般為 GB |
效能 | 接近原生 | 弱於 |
系統支援量 | 單機支援上千個容器 | 一般幾十個 |