容器是軟體套件,內含在任何環境中執行的所有必要元素。如此一來,容器便能將作業系統虛擬化,並在私人資料中心、公有雲,甚或是開發人員的個人筆記型電腦等任何環境中執行。無論是 Gmail、YouTube 還是搜尋功能,Google 的所有服務都是透過容器執行。容器化可讓我們的開發團隊快速移動、有效部署軟體,並以前所未有的規模運作。我們對於執行容器化的工作負載有深入的瞭解,也一直與社群分享這類知識:早期是將 cgroups 帶入 Linux kernel,後來則是將 Google 內部工具中的設計應用在 Kubernetes 專案中,並開放原始碼。
容器是應用程式程式碼的輕量級套件,其中包括依附元件,例如程式設計語言執行階段的特定版本,以及執行軟體服務所需的程式庫。
容器讓您可以在作業系統層級輕鬆共用 CPU、記憶體、儲存空間和網路資源,並提供邏輯封裝機制,能夠將應用程式從實際執行所在環境抽取出來。
責任分離
容器化提供了明確的責任分離,讓開發人員專注於應用程式邏輯與依附元件,而 IT 營運團隊可將注意力集中到部署與管理上,而不用擔心諸如特定軟體版本與特定設定之類的應用程式細節。
工作負載可攜性
容器幾乎能在任何位置執行,大大降低了在下列環境開發與部署的難度:Linux/Windows/Mac 作業系統、虛擬機器或實體伺服器、開發人員的機器或資料中心地端部署,當然還有公有雲。
應用程式隔離
容器可在作業系統層級虛擬化 CPU、記憶體、儲存空間與網路資源,為開發人員提供在邏輯上與其他應用程式完全隔離的 OS 檢視。
您可能已經對 VM 有所瞭解,例如 Linux 或 Windows 等訪客作業系統是在主機作業系統之上執行,且可使用基礎硬體。容器常被拿來與虛擬機器 (VM) 比較:容器和虛擬機器一樣,可以讓您將應用程式、程式庫和其他依附元件封裝在一起,以便在隔離的環境中執行您的軟體服務。不過如下所示,兩者的相似性僅止於此,由於容器能為開發人員與 IT 營運團隊提供更為輕量的工作單位,因而帶來了更多的好處。
容器提供邏輯封裝機制,能夠將應用程式從實際執行所在環境抽取出來。無論目標環境是私人資料中心、公有雲還是開發人員的個人筆記型電腦,這種分離的方式都可以輕鬆、一致地部署容器型應用程式。
靈活開發
容器可讓開發人員更快完成工作,不用擔心依附元件和環境。
高效率作業
容器不僅輕量,還允許僅使用所需的運算資源,讓您更有效率地執行應用程式。
隨時隨地執行
容器幾乎可以在任何地方執行,每當您想要執行軟體時,就可以使用容器。