為什麼要使用docker

2022-06-25 15:24:10 字數 1882 閱讀 1987

1. 為什麼要使用docker

docker容器虛擬化的好處

docker專案的發起人和docker inc.的cto solomon hykes認為,docker在正確的地點、正確的時間順應了正確的趨勢—即高效地構建應用。現在開發者需要能方便地建立執行在雲平台上的應用,也就是說應用必須能夠脫離底層機器,而且同時必須是「任何時間任何地點」可獲取的。因此,開發者們需要一種建立分布式應用程式的方式,這也是docker所能夠提供的。

舉個簡單的應用場景的例子。假設使用者試圖基於最常見的lamp(linux + apache + mysql + php)組合來運維乙個**。按照傳統的做法,首先,需要安裝apache、mysql 和php以及它們各自執行所依賴的環境;之後分別對它們進行配置(包括建立合適的使用者、配置引數等);經過大量的操作後,還需要進行功能測試,看是否工作正常;如果不正常,則意味著更多的時間代價和不可控的風險。可以想象,如果再加上更多的應用,事情會變得更加難以處理。

而docker提供了一種更為聰明的方式,通過容器來打包應用,意味著遷移只需要在新的伺服器上啟動需要的容器就可以了。這無疑將節約大量的寶貴時間,並降低部署過程出現問題的風險。

docker在開發和運維中的優勢

對開發和運維(devops)人員來說,可能最夢寐以求的就是一次性地建立或配置,可以在任意環境、任意時間讓應用正常地執行。而docker恰恰是可以實現這一終極目標的瑞士軍刀。

具體說來,docker在開發和運維過程中,具有如下幾個方面的優勢。

更快速的交付和部署。使用docker,開發人員可以使用映象來快速構建一套標準的開發環境;開發完成之後,測試和運維人員可以直接使用相同環境來部署**。docker可以快速建立和刪除容器,實現快速迭代,大量節約開發、測試、部署的時間。並且,各個步驟都有明確的配置和操作,整個過程全程可見,使團隊更容易理解應用的建立和工作過程。

更高效的資源利用。docker容器的執行不需要額外的虛擬化管理程式(virtual machine manager,vmm,以及hypervisor)支援,它是核心級的虛擬化,可以實現更高的效能,同時對資源的額外需求很低。

更輕鬆的遷移和擴充套件。docker容器幾乎可以在任意的平台上執行,包括物理機、虛擬機器、公有雲、私有雲、個人電腦、伺服器等。 這種相容性讓使用者可以在不同平台之間輕鬆地遷移應用。

更簡單的更新管理。使用dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。並且所有修改都以增量的方式進行分發和更新,從而實現自動化並且高效的容器管理。

docker與虛擬機器比較

作為一種輕量級的虛擬化方式,docker在執行應用上跟傳統的虛擬機器方式相比具有顯著優勢:

docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機器方式要快得多。

docker容器對系統資源需求很少,一台主機上可以同時執行數千個docker容器。

docker通過類似git的操作來方便使用者獲取、分發和更新應用映象,指令簡明,學習成本較低。

docker通過dockerfile配置檔案來支援靈活的自動化建立和部署機制,提高工作效率。

docker容器除了執行其中的應用之外,基本不消耗額外的系統資源,保證應用效能的同時,盡量減小系統開銷。傳統虛擬機器方式執行n個不同的應用就要啟動n個虛擬機器(每個虛擬機器需要單獨分配獨佔的記憶體、磁碟等資源),而docker只需要啟動n個隔離的容器,並將應用放到容器內即可。

當然,在隔離性方面,傳統的虛擬機器方式多了一層額外的隔離。但這並不意味著docker就不安全。docker利用linux系統上的多種防護機制實現了嚴格可靠的隔離。從1.3版本開始,docker引入了安全選項和映象簽名機制,極大地提高了使用docker的安全性。

下表總結了使用docker容器技術與傳統虛擬機器技術的特性比較。

為什麼要使用docker?

1 快速交付應用程式 開發者使用乙個標準的 image 來構建開發容器,開發完成之後,系統管理就可以使用這個容器來部署 docker 可以快速建立容器,快速迭代應用程式,並讓整個過程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。docker 容器很輕!很快!容器的啟動時間是次秒級的,...

為什麼要使用Docker

作為一種新興的虛擬化方式,docker 跟傳統的虛擬化方式相比具有眾多的優勢。由於容器不需要進行硬體虛擬以及執行完整作業系統等額外開銷,docker 對系統資源的利用率更高。無論是應用執行速度 記憶體損耗或者檔案儲存速度,都要比傳統虛擬機器技術更高效。因此,相比虛擬機器技術,乙個相同配置的主機,往往...

docker 1 為什麼要使用docker

一款產品從開發到上線,從作業系統,到執行環境,再到應用配置。做為開發 運維之間的協作,我們需要關心很多東西,這也就是很多網際網路公司都不得不面對的問題,特別是各種版本的迭代後,不同版本環境的相容,對運維人員都是考驗。docker只所以發展如此迅速,也是因為它對此給了乙個標準化的解決方案。環境配置如此...