詞彙表

術語定義
Compose

ComposeDocker

Docker 這個術語可以指

  • 整個 Docker 專案,這是一個供開發人員和系統管理員開發、交付和執行應用程式的平台
  • 在主機上執行的 docker 守護程式,用於管理映像和容器(也稱為 Docker 引擎)
Docker BusinessDocker Business 是一種 Docker 訂閱。Docker Business 為大規模使用 Docker 的企業提供集中式管理和進階安全功能。它使領導者能夠管理他們的 Docker 開發環境並加速他們安全的軟體供應鏈計畫。
Docker Desktop

Docker Desktop 是一個易於安裝、輕量級的 Docker 開發環境。Docker Desktop 適用於 MacWindowsLinux,為開發人員提供跨平台一致的體驗。Docker Desktop 包括 Docker 引擎、Docker CLI 用戶端、Docker Compose、Docker Content Trust、Kubernetes 和 Credential Helper。

Docker Desktop 可與您選擇的開發工具和語言一起使用,並允許您訪問 Docker Hub 中大量的認證映像和範本。這使開發團隊能夠擴展他們的環境,以便使用安全的存儲庫快速自動構建、持續整合和協作。

Docker Desktop for LinuxDocker Desktop for Linux 是一個易於安裝、輕量級的 Docker 開發環境,專為 Linux 機器設計。如果您想在 Linux 機器上構建、除錯、測試、打包和交付 Docker 化的應用程式,它是最佳解決方案。
Docker Desktop for MacDocker Desktop for Mac 是一個易於安裝、輕量級的 Docker 開發環境,專為 Mac 設計。作為原生 Mac 應用程式,Docker Desktop for Mac 使用 macOS Hypervisor 框架、網路和檔案系統。如果您想在 Mac 上構建、除錯、測試、打包和交付 Docker 化的應用程式,它是最佳解決方案。
Docker Desktop for WindowsDocker Desktop for Windows 是一個易於安裝、輕量級的 Docker 開發環境,專為支援 WSL 2 和 Microsoft Hyper-V 的 Windows 系統設計。Docker Desktop for Windows 使用 WSL 2 或 Hyper-V 進行虛擬化。如果您想從 Windows 機器構建、除錯、測試、打包和交付 Docker 化的應用程式,Docker Desktop for Windows 是最佳解決方案。
Docker Hub

Docker HubDocker ID

您的免費 Docker ID 授予您訪問 Docker Hub 存儲庫和一些 Beta 程式的權限。您只需要一個電子郵件地址。
Docker 官方映像Docker 官方映像是託管在 Docker Hub 上的一組策劃的 Docker 存儲庫。Docker, Inc. 贊助了一個專門的團隊,負責審查和發布 Docker 官方映像中的所有內容。該團隊與上游軟體維護人員、安全專家和更廣泛的 Docker 社群合作。
Docker 開放原始碼映像Docker 開放原始碼映像是由 Docker 開放原始碼計畫成員的組織發布和維護的。
Docker PersonalDocker Personal 是一種 Docker 訂閱。Docker Personal 專注於開放原始碼社群、個人開發者、教育和小型企業,將繼續允許免費使用 Docker 組件 - 包括 Docker CLI、Docker Compose、Docker 引擎、Docker Desktop、Docker Hub、Kubernetes、Docker Build 和 Docker BuildKit、Docker 官方映像、Docker Scan 等等。
Docker ProDocker Pro 是一種 Docker 訂閱。Docker Pro 使個人開發者能夠更好地控制他們的開發環境,並提供整合且可靠的開發者體驗。它減少了開發人員花在 mundane 和重複性任務上的時間,並使開發人員能夠將更多時間花在為客戶創造價值上。
Docker TeamDocker Team 是一種 Docker 訂閱。Docker Team 提供跨組織的協作、生產力和安全功能。它使開發人員團隊能夠釋放協作和共享的全部力量,並結合基本的安全功能和團隊管理功能。
Docker 受信任內容計畫Docker 受信任內容計畫透過四個計畫驗證內容,Docker 官方映像Docker 驗證發布者映像Docker 開放原始碼映像 和自訂官方映像。
Docker 驗證發布者映像Docker 驗證發布者映像是 Docker 確認來自受信任的軟體發布者,這些發布者是驗證發布者計畫的合作夥伴。Docker 驗證發布者映像由 Docker Hub 存儲庫中包含的驗證發布者標誌識別。
Docker 訂閱Docker 訂閱層級,有時也稱為方案,包括 個人版專業版團隊版商業版。如需更多詳細資訊,請參閱 Docker 訂閱概述
DockerfileDockerfile 是一個文字文件,其中包含您通常會手動執行的所有命令,以便構建 Docker 映像。Docker 可以透過讀取 Dockerfile 中的指令自動構建映像。
ENTRYPOINT

在 Dockerfile 中,ENTRYPOINT 是要執行的命令的第一部分的選用定義。如果您希望您的 Dockerfile 可在不指定 docker run 命令的其他參數的情況下運行,則必須指定 ENTRYPOINTCMD 或兩者。

  • 如果指定了 ENTRYPOINT,則將其設定為單個命令。大多數 Docker 官方映像的 ENTRYPOINT/bin/sh/bin/bash。即使您未指定 ENTRYPOINT,您也可以從您在 Dockerfile 中使用 FROM 關鍵字指定的基本映像繼承它。若要覆蓋執行階段的 ENTRYPOINT,您可以使用 --entrypoint。以下範例將 entrypoint 覆蓋為 /bin/ls,並將 CMD 設定為 -l /tmp

    $ docker run --entrypoint=/bin/ls ubuntu -l /tmp
  • CMD 會附加到 ENTRYPOINTCMD 可以是任何就 ENTRYPOINT 而言有效的任意字串,允許您一次傳遞多個命令或旗標。若要覆蓋執行階段的 CMD,只需將其新增到容器名稱或 ID 之後即可。在以下範例中,CMD 被覆蓋為 /bin/ls -l /tmp

    $ docker run ubuntu /bin/ls -l /tmp

實際上,ENTRYPOINT 並不經常被覆蓋。但是,指定 ENTRYPOINT 可以使您的映像更靈活且更容易重複使用。

SSHSSH(安全 shell)是一種用於訪問遠端機器和應用程式的安全協定。它提供身份驗證並加密透過不安全網路(例如網際網路)的數據通訊。SSH 使用公鑰/私鑰對來驗證登入。
聯合檔案系統

聯合檔案系統實作了聯合掛載(Union Mount),並透過建立層級來運作。Docker 將聯合檔案系統與寫入時複製技術結合使用,為容器提供建構基礎,使其非常輕量且快速。

有關 Docker 和聯合檔案系統的更多資訊,請參閱Docker 與 OverlayFS 的實際應用

聯合檔案系統的範例實作包括UnionFSOverlayFSamd64

AMD64 是 AMD 的 64 位元 Intel x86 架構延伸,也稱為 x86_64(或 x86-64)。
arm64ARM64 是 ARM CPU 架構的 64 位元延伸。 arm64 架構用於 Apple silicon 電腦。
基礎映像檔基礎映像檔是您在 Dockerfile 中的 FROM 指令中指定的映像檔。它定義了建置的起點。Dockerfile 指令會在基礎映像檔之上建立額外的層級。使用 FROM scratch 指令的 Dockerfile 會使用空的基礎映像檔。
btrfsbtrfs(B 樹檔案系統)是一種 Linux 檔案系統,Docker 支援其作為儲存後端。它是一種寫入時複製建置建置是使用Dockerfile建置 Docker 映像檔的過程。建置使用 Dockerfile 和「上下文」。上下文是建置映像檔所在目錄中的一組檔案。
cgroups

cgroups 是一種 Linux 核心功能,可以限制、計算和隔離一組行程的資源使用量(CPU、記憶體、磁碟 I/O、網路等)。Docker 依靠 cgroups 來控制和隔離資源限制。

也稱為控制群組

叢集叢集是一組協同運作以執行工作負載並提供高可用性的機器。
容器

容器是Docker 映像檔的執行個體。

Docker 容器包含:

  • 一個 Docker 映像檔
  • 一個執行環境
  • 一組標準指令

此概念借鑒於貨運貨櫃,貨運貨櫃定義了全球貨物運輸的標準。Docker 定義了軟體運輸的標準。

容器映像檔Docker 映像檔是容器的基礎。映像檔是有序的根檔案系統變更集合,以及在容器執行階段中使用的相應執行參數。映像檔通常包含堆疊在一起的多個分層檔案系統的聯合。
寫入時複製

Docker 對映像檔和容器使用寫入時複製技術和聯合檔案系統來最佳化資源和提高效能。實體的多個副本共享同一個執行個體,並且每個副本只對其唯一層級進行特定更改。

多個容器可以共享對同一個映像檔的存取權,並在可寫入層級上進行特定於容器的更改,該層級會在容器移除時刪除。這可以加快容器啟動時間和效能。

映像檔本質上是檔案系統的層級,通常基於可寫入層級下的基礎映像檔,並由與基礎映像檔不同的層級構建而成。這可以最大限度地減少映像檔的佔用空間,並啟用共享開發。

有關 Docker 上下文中寫入時複製的更多資訊,請參閱瞭解映像檔、容器和儲存驅動程式

檔案系統

檔案系統是作業系統用於命名檔案並為其分配位置以便有效儲存和擷取的方法。

範例:

  • Linux:overlay2、extfs、btrfs、zfs
  • Windows:NTFS
  • macOS:APFS
映像檔Docker 映像檔是容器的基礎。映像檔是有序的根檔案系統變更集合,以及在容器執行階段中使用的相應執行參數。映像檔通常包含堆疊在一起的多個分層檔案系統的聯合。映像檔沒有狀態,而且永遠不會改變。
受邀者已被邀請加入組織但尚未接受邀請的人。
層級在映像檔中,層級是對映像檔的修改,由 Dockerfile 中的指令表示。層級按順序套用於基礎映像檔以建立最終映像檔。更新或重建映像檔時,只需更新已更改的層級,未更改的層級會在本機快取。這就是 Docker 映像檔如此快速和輕量的原因之一。每個層級的大小加起來等於最終映像檔的大小。
libcontainerlibcontainer 提供了原生 Go 實作,用於使用命名空間、cgroup、功能和檔案系統存取控制來建立容器。它允許您管理容器的生命週期,在容器建立後執行其他操作。
libnetworklibnetwork 提供了原生 Go 實作,用於建立和管理容器網路命名空間和其他網路資源。它管理容器的網路生命週期,在容器建立後執行其他操作。
成員已收到並接受加入組織邀請的人。成員也可以指組織內團隊的成員。
命名空間Linux 命名空間Docker 執行參考使用使用者命名空間隔離容器
節點

節點是在Swarm 模式下執行 Docker Engine 執行個體的實體或虛擬機器。

管理節點執行 Swarm 管理和協調任務。預設情況下,管理節點也是工作節點。

工作節點執行任務。

組織組織是可以一起管理的團隊和儲存庫的集合。當 Docker 使用者被分配到組織中至少一個團隊時,他們就會成為該組織的成員。
組織名稱組織名稱,有時稱為組織命名空間或組織 ID,是 Docker 組織的唯一識別碼。
覆蓋網路驅動程式覆蓋網路驅動程式為叢集中的 Docker 容器提供開箱即用的多主機網路連線能力。
覆蓋儲存驅動程式OverlayFS 是一種 Linux 的檔案系統服務,它為其他檔案系統實現了聯合掛載。Docker Daemon 支援它作為儲存驅動程式。
永久儲存空間永久儲存空間或卷儲存空間提供了一種讓使用者向正在執行的容器的檔案系統新增永久層的方法。此永久層可以位於容器主機或外部裝置上。此永久層的生命週期與容器的生命週期無關,允許使用者保留狀態。
Registry

Registry 是一種託管服務,其中包含響應 Registry API 的映像儲存庫

可以使用瀏覽器在Docker Hub或使用 docker search 命令存取預設 Registry。

儲存庫

儲存庫是一組 Docker 映像。可以透過將儲存庫推送到Registry伺服器來共享它。儲存庫中的不同映像可以使用標籤來標記。

以下是以共享的nginx 儲存庫標籤席位

席位數是指組織中計劃成員的數量。
服務

服務是您希望如何在 swarm 中執行應用程式容器的定義。在最基本的層級上,服務定義了要在 swarm 中執行的容器映像以及要在容器中執行的命令。出於協調目的,服務定義了「期望狀態」,即要以任務形式執行的容器數量以及部署容器的限制。

在某些較大型應用程式的環境中,服務通常是微服務。服務的範例可能包含 HTTP 伺服器、資料庫或您希望在分散式環境中執行的任何其他類型的可執行程式。

服務帳戶服務帳戶是用於自動管理容器映像或容器化應用程式的 Docker ID。服務帳戶通常用於自動化工作流程中,並且不與 Docker 團隊或 Docker 商業訂閱計劃中的成員共享 Docker ID。
服務探索

Swarm 模式容器探索是 swarm 內部的 DNS 組件,它會自動為 swarm 中覆蓋網路上的每個服務分配 VIP 和 DNS 項目。網路上的容器透過 gossip 共享服務的 DNS 映射,因此網路上的任何容器都可以透過其服務名稱存取服務。

您不需要公開特定於服務的埠,即可讓相同覆蓋網路上的其他服務使用該服務。swarm 的內部負載平衡器會自動將服務 VIP 的請求分佈到活動任務中。

SwarmSwarm是由一個或多個以Swarm 模式執行的 Docker 引擎組成的叢集。
Swarm 模式Swarm 模式是指 Docker 引擎中內建的叢集管理和協調功能。當您初始化新的 swarm(叢集)或將節點加入 swarm 時,Docker 引擎會以 swarm 模式執行。
標籤標籤是套用於儲存庫中 Docker 映像的標記。標籤是用於區分儲存庫中各種映像的方式。
任務任務是 swarm 中排程的原子單位。任務攜帶 Docker 容器以及在容器內執行的命令。管理節點會根據服務規模中設定的副本數量將任務分配給工作節點。
團隊團隊是屬於組織的一組 Docker 使用者。一個組織可以有多個團隊。
虛擬機器

虛擬機器是一個模擬完整電腦並模擬專用硬體的程式。它與其他使用者共享實體硬體資源,但會隔離作業系統。終端使用者在虛擬機器上的體驗與在專用硬體上的體驗相同。

與容器相比,虛擬機器的執行負擔較重,提供更多隔離,擁有自己的資源集,並且共享程度最低。

也稱為 VM

卷是一個或多個容器中特別指定的目錄,它會繞過聯合檔案系統。卷旨在保存資料,與容器的生命週期無關。因此,當您移除容器時,Docker 永遠不會自動刪除卷,也不會對不再被容器參考的卷進行「垃圾回收」。 _也稱為:資料卷_

卷有三種類型:_主機卷、匿名卷和具名卷_

  • **主機卷**位於 Docker 主機的檔案系統上,可以從容器內存取。

  • **具名卷**是 Docker 管理卷在磁碟上建立位置的卷,但會為其指定名稱。

  • **匿名卷**類似於具名卷,但是,當它是匿名卷時,可能難以隨著時間推移參考相同的卷。Docker 會處理檔案的儲存位置。

x86_64x86_64(或 x86-64)是指 AMD 發明的一種 64 位元指令集,作為 Intel x86 架構的擴充。AMD 將其 x86_64 架構稱為 AMD64,而 Intel 將其實作稱為 Intel 64。