词汇表

学期定义
撰写

Compose是一个使用 Docker 定义和运行复杂应用程序的工具。使用 Compose,您可以在单个文件中定义多容器应用程序,然后在单个命令中启动您的应用程序,该命令会执行使其运行所需的所有操作。

也称为 Docker Compose

Docker

Docker一词可以指代

  • Docker 项目作为一个整体,是开发人员和系统管理员开发、发布和运行应用程序的平台
  • 运行在主机上的 docker 守护进程,用于管理镜像和容器(也称为 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 桌面Docker Desktop for Linux 是一个易于安装、轻量级的 Docker 开发环境,专为 Linux 机器设计。如果您想在 Linux 计算机上构建、调试、测试、打包和发布 Docker 化应用程序,那么这是最佳解决方案。
适用于 Mac 的 Docker 桌面Docker Desktop for Mac 是一个易于安装、专为 Mac 设计的轻量级 Docker 开发环境。 Docker Desktop for Mac 是一款本机 Mac 应用程序,使用 macOS Hypervisor 框架、网络和文件系统。如果您想在 Mac 上构建、调试、测试、打包和发布 Docker 化应用程序,那么这是最佳解决方案。
适用于 Windows 的 Docker 桌面Docker Desktop for Windows 是一个易于安装的轻量级 Docker 开发环境,专为支持 WSL 2 和 Microsoft Hyper-V 的 Windows 系统而设计。适用于 Windows 的 Docker Desktop 使用 WSL 2 或 Hyper-V 进行虚拟化。如果您想从 Windows 计算机构建、调试、测试、打包和发布 Docker 化应用程序,则适用于 Windows 的 Docker Desktop 是最佳解决方案。
Docker中心

Docker Hub是一个用于使用 Docker 及其组件的集中资源。它提供以下服务:

  • 托管 Docker 镜像的注册表
  • 用户认证
  • 自动图像构建和工作流程工具,例如构建触发器和网络挂钩
  • 与 GitHub 和 Bitbucket 集成
  • 安全漏洞扫描
DockerID您的免费 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 Verified Publisher 映像经 Docker 确认来自受信任的软件发行商,这些软件发行商是 Verified Publisher 计划的合作伙伴。 Docker Verified Publisher 镜像由 Docker Hub 存储库中包含的 Verified Publisher 徽章进行识别。
Docker 订阅Docker 订阅级别(有时称为计划)包括 PersonalProTeamBusiness。有关更多详细信息,请参阅 Docker 订阅概述
DockerfileDockerfile 是一个文本文档,其中包含您通常手动执行以构建 Docker 映像的所有命令。 Docker 可以通过读取 Dockerfile 中的指令自动构建镜像。
入口点

在 Dockerfile 中,anENTRYPOINT是要运行的命令的第一部分的可选定义。如果您希望 Dockerfile 无需为docker run命令指定其他参数即可运行,则必须指定ENTRYPOINTCMD或两者。

  • 如果ENTRYPOINT指定,则将其设置为单个命令。大多数官方 Docker 镜像都有一个ENTRYPOINTof/bin/sh/bin/bash.即使您没有指定,您也可以从您在 Dockerfile 中ENTRYPOINT使用关键字指定的基础映像继承它。FROMENTRYPOINT在运行时覆盖,您可以使用--entrypoint.以下示例将入口点覆盖为 be并将/bin/ls设为。CMD-l /tmp

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

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

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

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

联合文件系统实现 联合挂载并通过创建层进行操作。 Docker 将联合文件系统与 写入时复制技术结合使用,为容器提供构建块,使其非常轻量且快速。

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

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

AMD64AMD64是AMD对Intel x86架构的64位扩展,也称为x86_64(或x86-64)。
ARM64ARM64 是 ARM CPU 架构的 64 位扩展。苹果硅机采用arm64架构。
基础图像基础镜像在其 Dockerfile 中没有指定父镜像。它是使用带有指令的 Dockerfile 创建的FROM scratch
BTFSbtrfs(B 树文件系统)是 Docker 支持作为存储后端的Linux文件系统。它是一个 写时复制文件系统。
建造构建是使用Dockerfile构建 Docker 映像的过程 。构建使用 Dockerfile 和“上下文”。上下文是构建映像的目录中的文件集。
cgroups

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

也称为对照组

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

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

Docker 容器由以下部分组成

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

这个概念源自海运集装箱,它定义了全球运输货物的标准。 Docker 定义了发布软件的标准。

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

Docker 对映像和容器使用 写时复制 技术和 联合文件系统,以优化资源并提高性能。实体的多个副本共享同一个实例,每个副本仅对其唯一层进行特定更改。

多个容器可以共享对同一映像的访问,并在可写层上进行特定于容器的更改,当容器被删除时,该可写层也会被删除。这加快了容器的启动时间和性能。

映像本质上是文件系统的层,通常基于可写层下的基本映像,并由与基本映像的差异层构建而成。这可以最大程度地减少映像的占用空间并实现共享开发。

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

文件系统

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

例子 :

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

节点 是在集群模式下运行 Docker 引擎实例的物理机或虚拟

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

工作节点执行任务。

组织组织是可以一起管理的团队和存储库的集合。当 Docker 用户被分配到组织中的至少一个团队时,他们就成为该组织的成员。
机构名称组织名称,有时称为组织命名空间或组织 ID,是 Docker 组织的唯一标识符。
覆盖网络驱动程序Overlay 网络驱动程序为集群中的 Docker 容器提供开箱即用的多主机网络连接。
覆盖存储驱动程序OverlayFS 是 Linux 的 文件系统服务,它为其他文件系统实现联合挂载。 Docker 守护进程支持它作为存储驱动程序。
父图像FROM镜像的父镜像是在镜像的 Dockerfile 指令中指定的镜像。所有后续命令均基于此父映像。带有该指令的 DockerfileFROM scratch不使用父映像,而是创建一个基础映像。
持久存储持久存储或卷存储为用户提供了一种将持久层添加到正在运行的容器的文件系统中的方法。该持久层可以驻留在容器主机或外部设备上。该持久层的生命周期与容器的生命周期无关,允许用户保留状态。
注册表

注册表是一种托管服务,包含 响应注册表 API的 图像存储库。

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

存储库

存储库是一组 Docker 镜像。可以通过将存储库推送到 注册表服务器来共享存储库。存储库中的不同图像可以使用 标签进行标记。

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

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

服务 定义了您希望如何在集群中运行应用程序容器在最基本的层面上,服务定义了要在 swarm 中运行的容器映像以及要在容器中运行的命令。出于编排目的,该服务定义了“所需状态”,这意味着有多少容器作为任务运行以及部署容器的约束。

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

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

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

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

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

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

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

也称为虚拟机

体积

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

卷分为三种类型:主机卷、匿名卷和命名卷

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

  • 命名卷是由 Docker 在磁盘上创建卷的位置管理的卷,但它有一个名称。

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

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