Docker 術語
提示
本內容節錄自《容器化 .NET 應用程式的 .NET 微服務架構》(.NET Microservices Architecture for Containerized .NET Applications) 電子書,可以在 .NET Docs 上取得,或免費下載可供離線閱讀的 PDF。
本節列出您應該熟悉才能深入探索 Docker 的術語和定義。 如需進一步定義,請參閱 Docker 所提供的詳盡字彙表。
容器映像:包含建立容器所需之所有相依性和資訊的封裝。 映像會包含所有相依性 (例如架構),以及容器執行階段所要使用的部署和執行組態。 通常,一個映像會衍生自多個基底映像,這些基底映像是彼此交互堆疊以構成容器檔案系統的圖層。 建立映像之後,便一律不可變更映像。
Dockerfile:包含 Docker 映像建置指示的文字檔。 如同批次指令碼,第一行說明開始的基底映像,然後遵循指示安裝必要的程式、複製檔案等,直到取得您需要的工作環境。
建立:建立容器映像的動作,該映像會以其 Dockerfile 及建立映像之資料夾中其他檔案所提供的資訊和內容為依據。 您可以使用下列 Docker 命令來建置映像:
docker build
容器:Docker 映像的執行個體。 容器代表單一應用程式、程序或服務的執行。 其中包含 Docker 映像、執行環境,以及一組標準指示的內容。 調整服務時,您會從相同的映像建立容器的多個執行個體。 或者,批次作業可以從相同的映像建立多個容器,並將不同的參數傳遞至每個執行個體。
磁碟區:提供容器可使用的可寫入檔案系統。 因為映像是唯讀的,但是大部分程式需要寫入到檔案系統 (磁碟區會在容器映像上方新增可寫入的層),因此程式能夠存取可寫入的檔案系統。 程式並不知道其正在存取分層的檔案系統,其僅為一般的檔案系統。 磁碟區位於主機系統,而且由 Docker 管理。
標記:您可以套用至映像的標記或標籤,以便識別相同映像的不同映像版本 (視版本號碼或目標環境而定)。
多階段建置:這是 Docker 17.05 或更高版本中的功能,可協助減少最終映像的大小。 例如,可用於編譯和發佈之包含 SDK 的大型基底映像,以及可用於裝載應用程式之小型僅限執行階段的基底映像。
存放庫 (Repository 或 Repo):相關的 Docker 映像集合,已加上標記指出映像版本。 某些存放庫包含特定映像的多種變化,例如包含 SDK 的映像 (較大)、只包含執行階段的映像 (較小) 等等。這些變化可以加上標記。 一個存放庫可以包含多種平台變化,例如 Linux 映像和 Windows 映像。
登錄:提供存放庫存取權的服務。 大多數公用映像的預設登錄是 Docker Hub (以組織形式為 Docker 所擁有)。 登錄通常會包含來自多個小組的存放庫。 公司通常會有私人登錄來儲存及管理其所建立的映像。 Azure Container Registry 是另一個範例。
多架構映像:針對多架構 (或多平台),其為 Docker 功能,可根據 Docker 執行所在的平台,來簡化適當映像的選取。 例如,Dockerfile 從登錄中要求基底映像 FROM mcr.microsoft.com/dotnet/sdk:8.0 時,實際上會根據 Docker 執行所在的作業系統和版本來取得 8.0-nanoserver-ltsc2022、8.0-nanoserver-1809 或 8.0-bullseye-slim。
Docker Hub:上傳並使用映像的公開登錄。 Docker Hub 提供 Docker 映像裝載、公開或私人登錄、組建觸發程序和 Webhook,以及與 GitHub 和 Bitbucket 的整合。
Azure Container Registry:Azure 中使用 Docker 映像及其元件的公用資源。 這會提供接近 Azure 部署的登錄,並可讓您控制存取權,以便使用您的 Azure Active Directory 群組和權限。
Docker Trusted Registry (DTR):可在內部部署安裝的 Docker 登錄服務 (來自 Docker),以便存在於組織的資料中心和網路內。 這會方便在企業內管理私人映像。 Docker Trusted Registry 隨附於 Docker Datacenter 產品中。
Docker Desktop:適用於 Windows 和 macOS 的開發工具,可在本機建置、執行及測試容器。 適用於 Windows 的 Docker Desktop 提供適用於 Linux 和 Windows 容器的開發環境。 Windows 上的 Linux Docker 主機是以 Hyper-V 虛擬機器為基礎。 Windows 容器的主機則是直接以 Windows 為基礎。 適用於 Mac 的 Docker Desktop 是以 Apple Hypervisor 架構和 xhyve hypervisor 為基礎,提供 MacOS 版的 Linux Docker 主機虛擬機器。 適用於 Windows 和 Mac 的 Docker Desktop 會取代以 Oracle VirtualBox 為基礎的 Docker 工具箱。
撰寫:命令列工具和 YAML 檔案格式,其中繼資料可定義及執行多容器應用程式。 您可以使用一或多個 .yml 檔案,來定義以多個映像為基礎的單一應用程式,這些檔案可能會覆寫相依於環境的值。 建立定義之後,您可以使用單一命令 (docker-compose up) 來部署整個多容器應用程式,以在 Docker 主機上針對每個映像建立一個容器。
叢集:以單一虛擬 Docker 主機形式公開的 Docker 主機集合,讓應用程式可以擴充為分散到叢集內多部主機的多個服務執行個體。 您可以使用 Kubernetes、Azure Service Fabric、Docker Swarm 和 Mesosphere DC/OS 來建立 Docker 叢集。
協調器:可簡化叢集和 Docker 主機管理的工具。 協調器可讓您透過命令列介面 (CLI) 或圖形化 UI 來管理其映像、容器和主機。 您可以管理容器網路功能、組態、負載平衡、服務探索、高可用性、Docker 主機組態等等。 協調器會負責跨節點集合執行、散發、擴充及修復工作負載。 一般而言,協調器產品與提供叢集基礎結構的產品相同,例如在市場中其他供應項目之間的 Kubernetes 和 Azure Service Fabric。