词汇表

术语定义
组成

Compose 是一个用于定义和 使用 Docker 运行复杂的应用程序。使用 Compose,您可以定义一个 multi-container 应用程序,然后旋转 application up 在一个命令中执行所有需要的操作 完成以使其运行。

也称为 Docker Compose

Docker

术语 Docker 可以指

  • Docker 项目作为一个整体,它是开发人员和系统管理员开发、交付和运行应用程序的平台
  • 在主机上运行的 docker 守护进程,用于管理镜像和容器(也称为 Docker Engine)
Docker 业务Docker Business 是一种 Docker 订阅。Docker Business 为大规模使用 Docker 的企业提供集中式管理和高级安全功能。它使领导者能够管理其 Docker 开发环境并加速其安全软件供应链计划。
Docker 桌面

Docker Desktop 是一种易于安装的轻量级 Docker 开发环境。Docker Desktop 适用于 MacWindowsLinux,为开发人员提供跨平台的一致体验。Docker Desktop 包括 Docker Engine、Docker CLI 客户端、Docker Compose、Docker Content Trust、Kubernetes 和 Credential Helper。

Docker Desktop 可与您选择的开发工具和语言配合使用,并允许您访问 Docker Hub 中庞大的认证镜像和模板库。这使开发团队能够扩展其环境,以使用安全的存储库快速自动构建、持续集成和协作。

适用于 Linux 的 Docker DesktopDocker Desktop for Linux 是一个易于安装的轻量级 Docker 开发环境,专为 Linux 计算机设计。如果您想在 Linux 计算机上构建、调试、测试、打包和交付 Docker 化应用程序,这是最佳解决方案。
适用于 Mac 的 Docker DesktopDocker Desktop for Mac 是一款易于安装的轻量级软件 专为 Mac 设计的 Docker 开发环境。本地 Mac 应用程序,适用于 Mac 的 Docker Desktop 使用 macOS 虚拟机管理程序 框架、网络和文件系统。如果您愿意,这是最好的解决方案 在 Mac 的。
适用于 Windows 的 Docker Desktop适用于 Windows 的 Docker Desktop 是一个 易于安装的轻量级 Docker 开发环境设计 专门用于支持 WSL 2 和 Microsoft Hyper-V 的 Windows 系统。 适用于 Windows 的 Docker Desktop 使用 WSL 2 或 Hyper-V 虚拟化。如果您想从 Windows 计算机构建、调试、测试、打包和交付 Docker 化应用程序,适用于 Windows 的 Docker Desktop 是最佳解决方案。
Docker 中心

Docker Hub 是用于处理 Docker 及其组件的集中式资源。它提供以下服务:

  • 用于托管 Docker 镜像的注册表
  • 用户身份验证
  • 自动化镜像构建和工作流工具,例如构建触发器和 Webhook
  • 与 GitHub 和 Bitbucket 集成
  • 安全漏洞扫描
Docker ID您的免费 Docker ID 将授予您访问 Docker Hub 存储库和一些测试版程序的权限。您只需要一个电子邮件地址。
Docker 官方镜像Docker 官方镜像是托管在 Docker Hub 上的一组精选的 Docker 存储库。Docker, Inc. 赞助了一个专门的团队,负责审查和发布 Docker 官方镜像中的所有内容。该团队与上游软件维护者、安全专家和更广泛的 Docker 社区合作。
Docker 开源镜像Docker 开源镜像由属于 Docker 开源计划成员的组织发布和维护。
Docker 个人版Docker Personal 是 Docker 订阅。Docker Personal 专注于开源社区、个人开发人员、教育和小型企业,将继续允许免费使用 Docker 组件 - 包括 Docker CLI、Docker Compose、Docker Engine、Docker Desktop、Docker Hub、Kubernetes、Docker Build 和 Docker BuildKit、Docker 官方镜像、Docker Scan 等。
Docker 专业版Docker Pro 是 Docker 订阅。Docker Pro 使个人开发人员能够更好地控制其开发环境,并提供集成且可靠的开发人员体验。它减少了开发人员花在单调和重复性任务上的时间,并使开发人员能够将更多时间花在为客户创造价值上。
Docker 团队Docker Team 是 Docker 订阅。Docker Team 提供跨组织协作、生产力和安全性的功能。它使开发人员组能够释放协作和共享的全部功能,以及基本的安全功能和团队管理功能。
Docker 可信内容计划Docker 可信内容计划通过四个程序验证内容:Docker 官方镜像Docker 验证发布者镜像Docker 开源镜像和自定义官方镜像。
Docker 验证发布者镜像Docker 已验证发布者镜像由 Docker 确认来自受信任的软件发布者,这些发布者是已验证发布者计划的合作伙伴。Docker Verified Publisher 镜像由 Docker Hub 存储库中包含的 Verified Publisher 徽章标识。
Docker 订阅Docker 订阅层(有时称为计划)包括 PersonalProTeamBusiness。有关更多详细信息,请参阅 Docker 订阅概述
Dockerfile 文件Dockerfile 是一个文本文档,其中包含您需要的所有命令 通常手动执行以构建 Docker 镜像。Docker 可以 通过读取 Dockerfile 中的说明自动构建镜像。
入口点

在 Dockerfile 中,an 是第一部分的可选定义 的命令。如果您希望 Dockerfile 可以在 指定命令的其他参数,则必须指定 要么,要么,要么两者兼而有之。ENTRYPOINTdocker runENTRYPOINTCMD

  • 如果指定,则将其设置为单个命令。最官方 Docker 镜像具有 of 或 。即使您 请勿指定 ,您可以从以下基础镜像继承它 在 Dockerfile 中使用关键字指定。要在运行时覆盖 ,您可以使用 .以下示例 将 entryPoint 重写为 BE 并将 设置为 。ENTRYPOINTENTRYPOINT/bin/sh/bin/bashENTRYPOINTFROMENTRYPOINT--entrypoint/bin/lsCMD-l /tmp

    $ docker run --entrypoint=/bin/ls ubuntu -l /tmp
  • CMD附加到 .可以是任意字符串 )在 中有效,它允许您将 一次使用多个命令或标志。要在运行时覆盖 ,只需 将其添加到容器名称或 ID 之后。在以下示例中,将 重写为 。ENTRYPOINTCMDENTRYPOINTCMDCMD/bin/ls -l /tmp

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

在实践中, 并不经常被覆盖。但是,指定 可以使您的镜像更灵活且更易于重复使用。ENTRYPOINTENTRYPOINT

SSH 公司SSH(安全外壳)是一种用于访问远程机器和应用程序的安全协议。 它提供身份验证并加密通过不安全网络(如 Internet)进行的数据通信。SSH 使用公钥/私钥对来验证登录。
联合文件系统

联合文件系统实现联合 挂载和操作 层。Docker 将联合文件系统与写入时复制技术结合使用,为 容器,使它们非常轻量级和快速。

有关 Docker 和联合文件系统的更多信息,请参阅 Docker 和 OverlayFS 中的 实践

联合文件系统的示例实现包括 UnionFSOverlayFS

AMD64 系列AMD64 是 AMD 对 Intel x86 架构的 64 位扩展,也是 称为 x86_64(或 x86-64)。
ARM64ARM64 是 ARM CPU 体系结构的 64 位扩展。ARM64 架构 用于 Apple Silicon 计算机。
基本镜像基础镜像是您在 Dockerfile 的指令中指定的镜像。 它定义了构建的起点。 Dockerfile 指令在基础镜像之上创建其他层。 带有该指令的 Dockerfile 使用空的基础镜像。FROMFROM scratch
Btrfsbtrfs(B 树文件系统)是 Docker 的 Linux 文件系统 支持作为存储后端。它是一个时复制文件系统。
Build 是使用 Dockerfile 构建 Docker 镜像的过程。 该构建使用 Dockerfile 和“上下文”。上下文是生成镜像的目录中的文件集。
cgroups

cgroups 是一项 Linux 内核功能,用于限制、考虑和隔离 集合的资源使用情况(CPU、内存、磁盘 I/O、网络等) 的流程。Docker 依靠 cgroups 来控制和隔离资源限制。

也称为控制组

集群是一组协同工作以运行工作负载并提供高可用性的计算机。
容器

容器是 Docker 镜像的运行时实例。

Docker 容器包括

  • Docker 镜像
  • 执行环境
  • 一组标准指令

该概念借鉴自集装箱,后者定义了在全球范围内运输货物的标准。Docker 定义了一个标准来交付软件。

容器镜像Docker 镜像是容器的基础。镜像是根文件系统更改和相应执行参数的有序集合,可在容器运行时中使用。镜像通常包含彼此堆叠的分层文件系统的联合。
写入时复制

Docker 对镜像 容器来优化资源并提高性能。一个 实体共享同一个实例,并且每个实体仅对其 unique 层。

多个容器可以共享对同一镜像的访问,并使 可写层上特定于容器的更改,该更改在 容器将被删除。这加快了容器的启动时间并提高了性能。

镜像本质上是通常基于基础的文件系统层 镜像置于可写层下,并由与 基础镜像。这最大限度地减少了镜像的占用空间,并支持共享 发展。

有关 Docker 上下文中的写入时复制的更多信息,请参阅了解镜像。 容器和存储 驱动程序

文件系统

文件系统是操作系统用来命名文件的方法 并为它们分配位置以实现高效的存储和检索。

例子:

  • Linux的 : overlay2, extfs, btrfs, zfs
  • Windows:NTFS
  • macOS:APFS
镜像Docker 镜像是容器的基础。Image 是一个 有序的根文件系统更改集合和相应的 执行参数,以便在容器运行时中使用。镜像通常 包含彼此堆叠的分层文件系统的联合。镜像 没有 state,并且永远不会改变。
被邀请人已受邀加入组织但尚未接受邀请的人员。
在镜像中,层是对镜像的修改,由 Dockerfile 中的指令表示。图层按顺序应用于基础镜像以创建最终镜像。 更新或重建镜像时,只需更新更改的图层,并且未更改的图层将在本地缓存。这就是 Docker 镜像如此快速和轻量级的部分原因。每个图层的大小加起来等于最终镜像的大小。
lib容器libcontainer 提供了一个原生的 Go 实现,用于创建容器 命名空间、cgroups、功能和文件系统访问控制。它允许 您管理执行其他操作的容器的生命周期 在创建容器之后。
lib网络libnetwork 提供了一个原生的 Go 实现,用于创建和管理容器网络命名空间和其他网络资源。它管理容器的网络生命周期,并在创建容器后执行其他操作。
成员已收到并接受加入组织邀请的人员。Member 还可以指组织内的团队成员
NamespaceLinux 命名空间是一种 Linux 内核功能,用于隔离和虚拟化系统资源。仅限于命名空间的进程只能与属于同一命名空间的资源或进程进行交互。命名空间 是 Docker 隔离模型的重要组成部分。每种类型的资源都存在命名空间,包括 (networking)、(storage)、(processes)、(hostname control) 和 (UID mapping)。有关命名空间的更多信息,请参阅 Docker 运行参考隔离具有用户命名空间的容器netmntpidutsuser
节点

节点是物理节点或虚拟节点swarm 模式下运行 Docker Engine 实例的机器。

Manager 节点执行群管理和编排职责。默认情况下,管理器节点也是 worker 节点。

Worker 节点执行任务。

组织组织是可以一起管理的团队和仓库的集合。当 Docker 用户被分配到组织中的至少一个团队时,他们将成为组织的成员。
组织名称组织名称(有时称为组织命名空间或组织 ID)是 Docker 组织的唯一标识符。
覆盖网络驱动程序覆盖网络驱动程序提供开箱即用的多主机网络连接 对于集群中的 Docker 容器。
覆盖存储驱动程序OverlayFS 是适用于 Linux 的文件系统服务,它为其他文件系统实现联合挂载。 Docker 守护程序支持将其作为存储驱动程序。
持久存储持久存储或卷存储为用户提供了一种添加 持久层添加到正在运行的容器的文件系统中。此持久层 可能位于容器主机或外部设备上。此 持久层未连接到容器的生命周期,因此允许 要保留状态的用户。
注册表

Registry 是一种托管服务,其中包含响应 Registry API 的镜像存储库

可以使用 Docker Hub 上的浏览器或使用命令访问默认注册表。docker search

存储 库

存储库是一组 Docker 镜像。可以通过将存储库推送到 Registry Server 来共享存储库。存储库中的不同镜像可以使用标记进行标记。

以下是共享 nginx 存储库及其标签的示例。

座位席位数是指组织内计划的成员数。
服务

服务是您希望如何在群中运行应用程序容器的定义。在最基本的层面上,服务定义要在 swarm 中运行的容器镜像以及要在容器中运行的命令。出于编排目的,该服务定义了 “desired state”,即作为任务运行的容器数量和部署容器的约束。

通常,服务是一些较大的 应用。服务的示例可能包括 HTTP 服务器、数据库或 您希望在分布式中运行的任何其他类型的可执行程序 环境。

服务帐户服务账户是用于自动管理容器镜像或容器化应用程序的 Docker ID。服务帐户通常用于自动化工作流,并且不会与 Docker 团队或 Docker Business 订阅计划中的成员共享 Docker ID。
服务发现

Swarm 模式容器发现是 Swarm 内部的 DNS 组件,它会自动为 Swarm 中覆盖网络上的每项服务分配 VIP 和 DNS 条目。网络上的容器通过 gossip 共享服务的 DNS 映射,因此网络上的任何容器都可以通过其服务名称访问服务。

您无需公开特定于服务的端口,即可使该服务可供同一叠加网络上的其他服务使用。Swarm 的内部负载均衡器会在活动任务之间自动将请求分配给服务 VIP。

是由一个或多个 Docker 引擎组成的集群,以群模式运行。
召集模式Swarm 模式是指集群管理和编排 Docker Engine 中嵌入的功能。当您初始化新的 swarm(集群)或将节点加入 swarm 时,Docker Engine 以 swarm 模式运行。
标记标签是应用于存储库中 Docker 镜像的标签。 标签是存储库中各种镜像相互区分的方式。
任务任务是 swarm 中调度的原子单元。任务携带 Docker 容器和要在容器内运行的命令。Manager 节点根据 service scale 中设置的副本数将任务分配给 worker 节点。
团队团队是属于组织的一组 Docker 用户。一个组织可以有多个团队。
虚拟机

虚拟机是模拟完整计算机并模拟专用硬件的程序。 它与其他用户共享物理硬件资源,但隔离操作系统。最终用户在虚拟机上的体验与在专用硬件上的体验相同。

与容器相比,虚拟机的运行重量更重,提供更多的隔离,拥有自己的一组资源,并且共享最少。

也称为 VM

卷是一个或多个容器中专门指定的目录 绕过联合文件系统。卷旨在持久保存数据、 独立于容器的生命周期。因此,当您删除容器时,Docker 永远不会自动删除卷,也不会“垃圾回收”容器不再引用的卷。也称为:数据卷

卷有三种类型:host、anonymous 和 named

  • 主机卷位于 Docker 主机的文件系统上,可以从容器内部访问。

  • 命名卷是 Docker 管理的卷,其中创建卷在磁盘上,但它被赋予了一个名称。

  • 匿名卷类似于命名卷,但是,当它是匿名卷时,随着时间的推移可能很难引用同一卷。Docker 处理存储文件的位置。

x86_64x86_64(或 x86-64)是指 AMD 发明的 64 位指令集,作为 Intel x86 架构的扩展。AMD 将其 x86_64 架构称为 AMD64 的 CPU 和 Intel 将其实现称为 Intel 64。