docker容器是用來做什么的

docker中,容器提供了一種高效的機制,用于將組件組合到應用程序和服務中,并保持軟件組件的更新和維護;docker容器不僅彼此隔離,而且與底層系統隔離,并且在支持容器運行環境的任何機器上都可以運行。

docker容器是用來做什么的

本教程操作環境:linux7.3系統、docker-1.13.1版、Dell G3電腦。

docker容器是用來做什么的

現代軟件開發的目標之一是應用程序既能運行在同一主機或集群上,又能彼此隔離,這樣它們就不會過度干擾彼此的操作或維護,但由于要運行包、庫和其他軟件組件,這樣就會變得會比較困難。

解決這個問題的方案之一是用虛擬機,它將相同硬件上的應用程序完全隔離,并將軟件組件之間的沖突和硬件資源之間的競爭降到最低,但是虛擬機體積比較龐大,每個虛擬機都需要自己的操作系統,所以通常是GB大小而且很難維護和升級。

與虛擬機相反,容器將應用程序的執行環境彼此隔離,但共享底層OS內核。它們通常以兆字節為單位,使用的資源比虛擬機少得多,而且幾乎是立即啟動的。可以做到在相同的硬件上更密集地打包,而不需要花費太多的精力和開銷。

容器提供了一種高效和高粒度的機制,將軟件組件組合到現代企業所需的各種應用程序和服務堆棧中,并保持這些軟件組件的更新和維護。

Docker是一個開源項目,可以輕松創建容器和基于容器的應用程序,最初是為Linux構建的,現在也可以在windowsmacos上運行。

一直以來Docker都可以幫助開發人員快速構建輕量級和可移植的軟件容器,從而簡化應用程序開發、測試和部署等諸多環節。具體來說,它是一個用于構建應用程序的軟件平臺,可以提供一種小型和輕量級的執行環境用來共享操作系統內核,但在其他方面是獨立運行的。

雖然容器概念已經出現不短的時間,但2013年推出的開源項目Docker在很大程度上幫助推廣了這項技術,并推動了軟件開發中容器化和微服務的趨勢,這種趨勢后來被稱為云原生開發。

Docker容器提供了一種構建企業應用程序和業務流程應用程序的方法,這些應用程序比傳統應用程序更容易安裝、維護和移動。

Docker容器支持隔離:Docker容器使應用程序不僅彼此隔離,而且與底層系統隔離。這不僅使軟件棧更干凈,而且更容易使容器化應用程序使用系統資源,例如CPU、GPU、內存、I/O、網絡等,它還可以確保數據和代碼保持獨立。

Docker容器支持可移植性:Docker容器在支持容器運行環境的任何機器上運行。應用程序不必綁定到主機操作系統,因此可以保持應用程序環境和底層操作環境的整潔和最小化。

例如,采用容器的mysql將在大多數支持容器的Linux系統上運行,應用程序的所有依賴項通常都在同一個容器中提供。基于容器的應用程序可以輕易從on-prem系統遷移到云環境中,或從開發人員的筆記本電腦移到服務器上,只要目標系統支持Docker以及可能與之一起使用的任何第三方工具,比如kubernetes

通常,Docker容器鏡像必須為特定的平臺構建。例如Windows容器不能在Linux上運行,反之亦然;以前,繞過此限制的一種方法是啟動運行所需操作系統實例的虛擬機,并在虛擬機中運行容器。

然而Docker團隊后來設計了一個更優雅的解決方案,稱為manifest,它允許多個操作系統的鏡像并行打包。盡管manifest雖然還處于試驗階段,但這暗示了容器可能成為跨平臺應用程序解決方案和跨環境應用程序解決方案。

Docker容器支持可組合性:大多數業務應用程序由幾個獨立的組件組成,web服務器、數據庫和cache緩存。Docker容器可以將這些部件組合成一個容易更換的功能單元。每個部分由不同的容器提供,可以獨立于其他容器進行維護、更新、交換和修改。

這本質上是應用程序設計的微服務模型。通過將應用程序功能劃分為獨立的、自包含的服務,微服務模型為過程緩慢的傳統開發和單一僵化的應用程序提供了一種解決方案,輕量級和便攜式容器使構建和維護基于微服務的應用程序變得更加容易。

Docker容器簡化了編排和擴展:由于容器是輕量級的,并且開銷很小,所以可以在給定的系統上啟動更多的容器,而且容器也可以用于跨系統集群擴展應用程序,并將服務向上或向下擴展以滿足高峰需求或節約資源。

用于部署、管理和擴展容器的大多數企業級工具版本都是通過第三方項目提供的。其中最主要的是谷歌的Kubernetes,這是一個支持容器部署和擴展的自動化系統,還支持容器連接、負載平衡和管理。Kubernetes還提供了創建和重用多容器應用程序或“Helm charts”圖表的方法,這樣就可以根據需要構建和管理復雜的應用程序堆棧。

Docker還內置了Swarm編排模式,目前該模式應用比較少,Kubernetes已成為某種默認選擇。事實上Kubernetes與Docker Enterprise Edition捆綁在一起。

推薦學習:《docker視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享