本部分列出了在深入了解 Docker 之前应熟悉的术语和定义。 有关进一步的定义,请参阅 Docker 提供的广泛 术语表 。
容器映像:包含创建容器所需的所有依赖项和信息的包。 映像包括容器运行时要使用的所有依赖项(如框架)以及部署和执行配置。 通常,映像派生自多个基础映像,这些基映像相互堆叠以形成容器的文件系统。 创建映像后是不可变的。
Dockerfile:包含生成 Docker 映像的说明的文本文件。 就像批处理脚本一样,第一行将基本映像声明为开头,然后按照说明安装所需的程序、复制文件等,直到获得所需的工作环境。
构建:基于 Dockerfile 提供的信息和上下文来构建容器镜像的操作,包括镜像构建文件夹中的其他文件。 可以使用以下 Docker 命令生成映像:
docker build
容器:Docker 映像的实例。 容器表示单个应用程序、进程或服务的执行。 它包括 Docker 映像、执行环境和一组标准指令的内容。 缩放服务时,可以从同一映像创建容器的多个实例。 或者,批处理作业可以从同一映像创建多个容器,并将不同的参数传递给每个实例。
卷:提供一个容器可以使用的可写文件系统。 由于映像是只读的,但大多数程序需要写入文件系统,因此在容器映像的基础上添加了一个可写层,从而使程序能够访问可写的文件系统。 程序不知道它正在访问分层文件系统,文件系统只是像往常一样运行。 数据卷位于主机系统中,由 Docker 软件管理。
标记:可以应用于映像的标记或标签,以便可以识别同一映像的不同映像或版本(具体取决于版本号或目标环境)。
多阶段生成:是一项功能,自 Docker 17.05 或更高版本以来,有助于减小最终映像的大小。 例如,包含 SDK 的大型基础映像可用于编译和发布,然后可以使用小型仅限运行时的基本映像来托管应用程序。
存储库 (repo) :相关的 Docker 映像集合,带有指示映像版本的标记。 某些存储库包含特定映像的多个变体,例如包含 SDK 的图像(较重)、仅包含运行时的图像(较轻),等等。这些变体可以使用标记进行标记。 单个存储库中可包含平台变量,如 Linux 映像和 Windows 映像。
注册表:提供对存储库的访问权限的服务。 大多数公共映像的默认注册表是 Docker 中心 (由 Docker 作为组织所有)。 注册表通常包含来自多个团队的存储库。 公司通常拥有专用注册表来存储和管理他们创建的映像。 Azure 容器注册表是另一个示例。
多架构映像:对于多架构(或 多平台),它是一项 Docker 功能,可根据运行 Docker 的平台简化相应映像的选择。 例如,当 Dockerfile 从注册表 mcr.microsoft.com/dotnet/sdk:8.0 请求基础映像 时 ,它实际上会获取 8.0-nanoserver-ltsc2022、 8.0-nanoserver-1809 或 8.0-bullseye-slim,具体取决于 Docker 正在运行的作系统和版本。
Docker 中心:用于上传映像并使用这些映像的公共注册表。 Docker 中心提供 Docker 映像托管、公共或专用注册表、生成触发器和 Web 挂钩,以及与 GitHub 和 Bitbucket 的集成。
Azure 容器注册表:用于在 Azure 中使用 Docker 映像及其组件的公共资源。 这提供了与 Azure 中的部署接近的注册表,使你可以控制访问权限,从而可以使用 Azure Active Directory 组和权限。
Docker 受信任的注册表(DTR):一个由 Docker 提供的 Docker 注册表服务,可以安装在本地,从而可以位于组织的数据中心和网络中。 对于应在企业中管理的专用映像来说,这很方便。 Docker 受信任的注册表包含在 Docker 数据中心产品的一部分。
Docker Desktop:适用于 Windows 和 macOS 的开发工具,用于在本地生成、运行和测试容器。 适用于 Windows 的 Docker Desktop 为 Linux 和 Windows 容器提供开发环境。 Windows 上的 Linux Docker 主机基于 Hyper-V 虚拟机。 Windows 容器的主机直接基于 Windows。 Docker Desktop for Mac 基于 Apple 虚拟机监控程序框架和 xhyve 虚拟机监控程序,后者在 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 群集。
Orchestrator:一种简化群集和 Docker 主机管理的工具。 业务流程协调程序允许你通过命令行界面(CLI)或图形 UI 管理其映像、容器和主机。 可以管理容器网络、配置、负载均衡、服务发现、高可用性、Docker 主机配置等。 编排器负责在节点集合中运行、分发、扩展和修复工作负载。 通常情况下,业务流程协调程序产品是提供群集基础结构的同一产品,如 Kubernetes 和 Azure Service Fabric,以及市场中的其他产品/服务。