之前章节:
本节列出了在深入了解Docker之前应该熟悉的术语和定义。更多定义,请参阅Docker提供的扩展词汇表。
容器映像:
包含创建容器所需的所有依赖项和信息的包。映像包括容器运行时使用的所有依赖项(如框架)以及部署和执行配置。通常,一个映像是从多个基本映像派生的,这些基本映像层叠在一起形成容器的文件系统。图像一旦创建就不可变。
Docker file:
一个文本文件,包含如何构建Docker映像的说明。这就像一个批处理脚本,第一行以基本映像开头,然后按照说明安装所需程序、复制文件等,直到获得所需的工作环境。
构建:
根据Dockerfile提供的信息和上下文,以及构建图像所在文件夹中的其他文件,构建容器图像的操作。可以使用Docker Docker build命令生成图像。
容器:
Docker映像的实例。容器表示单个应用程序、进程或服务的执行。它由Docker映像、执行环境和标准指令集的内容组成。缩放服务时,可以从同一个映像创建容器的多个实例。或者,批处理作业可以从同一个映像创建多个容器,将不同的参数传递给每个实例。
卷:
提供容器可以使用的可写文件系统。由于映像是只读的,但大多数程序需要写入文件系统,因此卷在容器映像的顶部添加了一个可写层,因此程序可以访问可写文件系统。程序不知道它正在访问一个分层的文件系统,它只是一个和往常一样的文件系统。卷位于主机系统中,由Docker管理。
标记:
可以应用于图像的标记或标签,以便可以识别同一图像的不同图像或版本(取决于版本号或目标环境)。
多阶段构建:
是一个功能,因为Docker17.05或更高版本,有助于减少最终图像的大小。在几句话中,使用多阶段构建,例如,您可以使用包含SDK的大型基本映像来编译和发布应用程序,然后使用带有小的仅运行时基本映像的发布文件夹来生成更小的最终映像
仓库(repo):
一组相关的Docker镜像,标签上有一个表示镜像版本的标签。有些repo包含特定映像的多个变体,例如包含sdk(较重)的映像、仅包含运行时(较轻)的映像等。这些变体可以用标记进行标记。单个repo可以包含平台变体,例如Linux映像和Windows映像。
注册表:
提供对存储库的访问的服务。大多数公共图像的默认注册表是Docker Hub(Docker作为一个组织拥有)。注册表通常包含来自多个团队的存储库。公司通常有私人注册中心来存储和管理他们创建的图像。Azure容器注册表就是另一个例子。
多架构图像:
对于多架构,这是一个功能,根据Docker运行的平台简化了适当图像的选择。例如,当Dockerfile从注册表中请求mcr.microsoft.com/dotnet/core/sdk:3.1的基本映像时,它实际上得到3.1-sdk-nanoserver-1909、3.1-sdk-nanoserver-1809或3.1-sdk-buster-slim,这取决于运行Docker的操作系统和版本。
Docker Hub:
一个公共注册中心,用于上传镜像并与之协同工作。Docker Hub提供Docker镜像托管、公共或私有注册、构建触发器和web挂钩,以及与GitHub和Bitbucket的集成。
Azure容器注册表:
用于在Azure中处理Docker映像及其组件的公共资源。这提供了一个注册表,该注册表靠近你在Azure中的部署,并允许你控制访问权限,从而可以使用你的Azure活动目录组和权限。
Docker Trusted Registry(DTR):
Docker Registry服务(来自Docker),可安装在本地,因此它位于组织的数据中心和网络中。对于应该在企业内部管理的私有映像来说,这是很方便的。Docker Trusted Registry是Docker数据中心产品的一部分。有关详细信息,请参阅Docker Trusted Registry(DTR)。
Docker 社区版(CE):
用于在本地构建、运行和测试容器的Windows和macOS开发工具。Docker CE for Windows为Linux和Windows容器提供了开发环境。Windows上的Linux Docker主机基于一个Hyper-V虚拟机。Windows容器的主机直接基于Windows。Docker CE for Mac基于Apple虚拟机监控程序框架和xhyve虚拟机监控程序,后者在Mac OS X上提供Linux Docker主机虚拟机。Docker CE for Windows和for Mac取代了Docker Toolbox,后者基于Oracle VirtualBox。
Docker企业版(EE):
用于Linux和Windows开发的Docker工具的企业级版本。
Compose:
一个命令行工具和YAML文件格式,带有用于定义和运行多容器应用程序的元数据。您可以基于多个图像定义单个应用程序,其中包含一个或多个.yml文件,这些文件可以根据环境覆盖值。创建定义后,可以使用一个命令(docker compose up)部署整个多容器应用程序,该命令在docker主机上为每个映像创建一个容器。
群集:
Docker主机的集合,就像它是一个虚拟Docker主机一样,这样应用程序就可以扩展到分布在群集中多个主机上的多个服务实例。Docker集群可以使用Kubernetes、Azure服务结构、Docker Swarm和中间层DC/OS创建。
Orchestrator(编排器):
一个简化集群和Docker主机管理的工具。Orchestrator允许您通过CLI或图形用户界面管理其图像、容器和主机。您可以管理容器网络、配置、负载平衡、服务发现、高可用性、Docker主机配置等。编排器负责跨节点集合运行、分发、缩放和修复工作负载。通常,orchestrator产品与市场上提供集群基础设施(如Kubernetes和Azure Service Fabric)的产品相同。