好程序員Java分享爲何要使用Docker

好程序員Java培訓分享爲何要使用Docker,概述做爲一種新興的虛擬化方式,Docker 跟傳統的虛擬化方式相比具備衆多的優點。

更高效的利用系統資源

因爲容器不須要進行硬件虛擬以及運行完整操做系統等額外開銷,Docker 對系統資源的利用率更高。不管是應用執行速度、內存損耗或者文件存儲速度,都要比傳統虛擬機技術更高效。所以,相比虛擬機技術,一個相同配置的主機,每每能夠運行更多數量的應用。程序員

更快速的啓動時間

傳統的虛擬機技術啓動應用服務每每須要數分鐘,而 Docker 容器應用,因爲直接運行於宿主內核,無需啓動完整的操做系統,所以能夠作到秒級、甚至毫秒級的啓動時間。大大的節約了開發、測試、部署的時間。運維

一致的運行環境

開發過程當中一個常見的問題是環境一致性問題。因爲開發環境、測試環境、生產環境不一致,致使有些 bug 並未在開發過程當中被發現。而 Docker 的鏡像提供了除內核外完整的運行時環境,確保了應用運行環境一致性,從而不會再出現 「這段代碼在我機器上沒問題啊」 這類問題。性能

持續交付和部署

對開發和運維(DevOps)人員來講,最但願的就是一次建立或配置,能夠在任意地方正常運行。測試

使用 Docker 能夠經過定製應用鏡像來實現持續集成、持續交付、部署。開發人員能夠經過 Dockerfile 來進行鏡像構建,並結合持續集成(Continuous Integration) 系統進行集成測試,而運維人員則能夠直接在生產環境中快速部署該鏡像,甚至結合 持續部署(Continuous Delivery/Deployment) 系統進行自動部署。spa

並且使用 Dockerfile 使鏡像構建透明化,不單單開發團隊能夠理解應用運行環境,也方便運維團隊理解應用運行所需條件,幫助更好的生產環境中部署該鏡像。操作系統

更輕鬆的遷移

因爲 Docker 確保了執行環境的一致性,使得應用的遷移更加容易。Docker 能夠在不少平臺上運行,不管是物理機、虛擬機、公有云、私有云,甚至是筆記本,其運行結果是一致的。所以用戶能夠很輕易的將在一個平臺上運行的應用,遷移到另外一個平臺上,而不用擔憂運行環境的變化致使應用沒法正常運行的狀況。內存

更輕鬆的維護和擴展

Docker 使用的分層存儲以及鏡像的技術,使得應用重複部分的複用更爲容易,也使得應用的維護更新更加簡單,基於基礎鏡像進一步擴展鏡像也變得很是簡單。此外,Docker 團隊同各個開源項目團隊一塊兒維護了一大批高質量的官方鏡像,既能夠直接在生產環境使用,又能夠做爲基礎進一步定製,大大的下降了應用服務的鏡像製做成本。ci

特性資源

容器開發

虛擬機

啓動

秒級

分鐘級

硬盤使用

通常爲 MB

通常爲 GB

性能

接近原生

弱於

系統支持量

單機支持上千個容器

通常幾十個

相關文章
相關標籤/搜索