什麼是容器?
容器為輕量的獨立套件,當中封裝了完整的執行階段環境,包括應用程式及其相依性 (資料庫、二進位檔和其他任何設定檔案),可提高應用程式的可移轉性、延展性、安全性和靈活性。
容器廣為開發人員和操作人員使用,原因在於,無論目標環境為何,容器都能透過直截了當的方式來部署和管理應用程式。容器能改善開發和營運團隊之間的移交作業,繼而促進開發營運和開發資安營運做法。
容器能有效率地使用資源,進而實現高密度與高資源利用率。容器雖可運用在絕大多數的應用程式上,卻經常和微服務密不可分;微服務中會使用多個容器來執行個別的應用程式元件或服務。構成應用程式的容器,通常會以容器協調作業平台 (例如 Kubernetes) 進行協調和管理。
容器的建立方式,在於將使用一個或多個映像倉庫的多個映像所組成的應用程式,與任何資料庫或其他應用程式相依性一同進行封裝,藉此排除可移轉性和相容性等問題。

適用於 Kubernetes 的嶄新容器建置方式

《容器和虛擬機的協同效益》(The Synergies Between Containers and Virtual Machines)
使用容器具備哪些優勢?
使用容器建置應用程式,可加快新功能的交付速度,並營造鼓勵持續創新的環境。您將可享有以下優勢:
靈活性:改善開發人員靈活性,有助於提高生產力,並加快應用程式開發速度。容器可簡化 CI/CD Pipeline,不僅適用於開發營運團隊,也適合進行微服務部署作業。
延展性和高可用性:使用 Kubernetes,即可依照工作負載需求變動,自動延展或縮減容器部署規模,進而提高應用程式可用性。
可移轉性:相較於虛擬機,容器不僅更加輕量,使用的資源也較少。容器化應用程式無需受限於基礎架構,無論部署地點為何,都能透過相同的方式操作。
彈性:容器化應用程式會與作業系統和其他容器隔離開來,並進行抽象化;即使單一容器發生故障,也不會影響其他執行中容器。
容器標準
容器自動化
手動作業會拖慢開發團隊的速度。容器自動化可讓開發人員專心處理程式碼,而非封裝作業。容器映像會採層層堆疊的方式進行建置。使用自動化方法建置容器,每當分層發生變更,就只需更新該分層即可。舉例來說,如果待更新的項目僅限系統資料庫,就只需重新建置包含資料庫的分層就好。由於其他分層保持不變,此舉可減輕測試和驗證負擔,進而更快更頻繁地將更新後的容器推送至生產環境。
Docker
誕生於 2013 年的 Docker,幾乎已成為容器的代名詞,並持續用來建置容器映像。Docker 環境包含一個容器執行階段,以及容器建置和映像管理功能。Docker 會建置符合 OCI 標準的容器映像,因此,Docker 映像可在符合 OCI 標準的任何容器執行階段中執行。
Kubernetes
容器使用情境
開發人員層面
- 改善不同平台和設定之間的應用程式可移轉性,如此一來,使用任一版語言編輯器或解譯器開發的程式碼,就能在無需修正的情況下,於後續版本中順利執行。
- 讓開發人員無需在相同基礎架構上進行開發、測試和部署,如此一來,在筆記型電腦上撰寫程式碼的開發人員,就能確信在其他任何基礎架構上 (無論為地端伺服器或雲端式虛擬機),該應用程式將可如預期般執行。
- 促進 CI/CD 等敏捷開發方法,以加速接受和部署程式碼。
IT 作業層面
- 透過輕量型方式,與其他應用程式加以隔離,進而提高應用程式安全性。
- 在不同作業系統版本、網路拓撲、儲存設定和雲端平台之間,順暢移轉容器化應用程式。
- 在單一作業系統執行實例上執行多個應用程式容器,藉此提高 IT 效率。容器大小通常僅數十 MB,虛擬器大小則高達 10 GB 以上;正因如此,單一伺服器執行實例可執行的容器數量,往往遠大於虛擬機。
建立額外的容器執行實例僅需短短數毫秒 (虛擬機則需數分鐘之久),有助於提供絕佳的隨選延展性。
相關解決方案與產品
運用 Kubernetes 推動應用程式現代化改造
在資料中心或雲端環境中,提供開發人員立即可用的 Kubernetes
使用適用於 Kubernetes 的原始碼建置容器
VMware Tanzu Build Service 可自動化企業規模的容器建置、管理和治理作業。
多雲 Kubernetes 管理
VMware Tanzu Mission Control 是一款多雲 Kubernetes 管理平台,可交付一致的 Kubernetes 式平台,藉此在任何雲端上大規模管理、操作和分配應用程式,進而將雲端虛擬化。