词汇表

学期定义
amd64

AMD64是AMD对Intel x86体系结构的64位扩展,也称为x86_64(或x86-64)。

奥夫斯

aufs(高级多层统一文件系统)是Docker支持作为存储后端的Linux文件系统。它为Linux文件系统实现了 联合安装

基本图片

基础图像在其Dockerfile未指定父图像。它是使用带有FROM scratch指令的Dockerfile创建的。

btrfs

btrfs(B树文件系统)是Docker支持作为存储后端的Linux文件系统。这是一个写时复制 文件系统。

建造

build是使用Dockerfile构建Docker映像的过程。构建使用Dockerfile和“上下文”。上下文是构建映像的目录中的文件集。

小组

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

也称为:对照组

群集是一组机器,它们一起工作以运行工作负载并提供高可用性。

撰写

Compose是用于使用Docker定义和运行复杂应用程序的工具。使用Compose,您可以在一个文件中定义一个多容器应用程序,然后在一个命令中旋转应用程序,该命令完成了运行该应用程序所需的一切。

也称为docker-compose,fig

写时复制

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

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

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

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

容器

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

Docker容器包括

  • Docker映像
  • 执行环境
  • 标准说明集

该概念是从“运输容器”中借用的,该容器定义了在全球范围内运输货物的标准。Docker定义了发布软件的标准。

码头工人

Docker一词可以指

  • Docker项目作为一个整体,它是供开发人员和系统管理员开发,交付和运行应用程序的平台
  • 在管理映像和容器的主机上运行的docker守护进程(也称为Docker Engine)
Mac版Docker桌面

Docker Desktop for Mac是一个易于安装的轻量级Docker开发环境,专门为Mac设计。Docker Desktop for Mac是Mac的本机应用程序,它使用macOS Hypervisor框架,网络和文件系统。如果要在Mac上构建,调试,测试,打包和交付Dockerized应用程序,这是最佳解决方案。

Windows版Docker桌面

适用于Windows的Docker桌面是易于安装的轻型Docker开发环境,专门为支持Microsoft Hyper-V(专业,企业和教育)的Windows 10系统设计。适用于Windows的Docker桌面使用Hyper-V进行虚拟化,并作为本机Windows应用程序运行。它与Windows Server 2016一起使用,使您能够设置和运行Windows容器以及标准Linux容器,并且可以在两个容器之间进行切换。如果要从Windows机器构建,调试,测试,打包和运送Dockerized应用程序,则Docker for Windows是最佳解决方案。

Docker集线器

泊坞窗枢纽是与泊坞窗及其组件的工作集中资源。它提供以下服务:

  • Docker映像托管
  • 用户认证
  • 自动化的图像构建和工作流程工具,例如构建触发器和Web挂钩
  • 与GitHub和Bitbucket集成
Docker文件

Dockerfile是一个文本文档,其中包含您通常会为了构建Docker映像而手动执行的所有命令。Docker可以通过阅读Dockerfile中的指令来自动构建映像。

入口点

在Dockerfile中,anENTRYPOINT是要运行的命令的第一部分的可选定义。如果你希望你的Dockerfile是没有指定其他参数可运行的docker run命令,你必须指定ENTRYPOINTCMD或两者兼而有之。

  • 如果ENTRYPOINT指定,则将其设置为单个命令。大多数官方Docker映像ENTRYPOINT/bin/sh或均为/bin/bash。即使您未指定ENTRYPOINT,也可以使用FROMDockerfile中的关键字从指定的基本映像继承它。要ENTRYPOINT在运行时覆盖 ,可以使用--entrypoint。以下示例将入口点/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可以使您的图像更灵活并且更易于重用。

文件系统

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

例子 :

  • Linux:ext4,aufs,btrfs,zfs
  • Windows:NTFS
  • macOS:HFS +
图像

Docker映像是容器的基础。映像是根文件系统更改和容器运行时中使用的相应执行参数的有序集合。映像通常包含一个堆叠在一起的分层文件系统的并集。图像没有状态,并且永远不会改变。

在映像中,层是对映像的修改,由Dockerfile中的指令表示。将图层按顺序应用于基础图像以创建最终图像。当更新或重建映像时,仅需要更新更改的图层,而未更改的图层将在本地缓存。这就是为什么Docker映像如此快速且轻巧的原因之一。每层的大小加起来等于最终图像的大小。

lib容器

libcontainer提供了本机Go实现,用于创建具有名称空间,cgroup,功能和文件系统访问控制的容器。它使您可以管理创建容器后执行其他操作的容器的生命周期。

lib网络

libnetwork提供了本机Go实现,用于创建和管理容器网络名称空间和其他网络资源。创建容器后,它管理容器的网络生命周期,执行附加操作。

关联

链接提供了一个旧式接口,可将在同一主机上运行的Docker容器彼此连接,而不会暴露主机的网络端口。请改用Docker网络功能。

机器

Machine是Docker工具,它使在计算机,云提供商和您自己的数据中心内创建Docker主机变得非常容易。它创建服务器,在其上安装Docker,然后配置Docker客户端与之对话。

也称为:docker-machine

命名空间

一个Linux的命名空间 是一个Linux内核的功能,分离和虚拟化系统资源。限于名称空间的进程只能与属于同一名称空间的资源或进程进行交互。命名空间是Docker隔离模型的重要组成部分。每种资源类型都有名称空间,包括net(网络),mnt(存储),pid(进程),uts(主机名控制)和user(UID映射)。有关名称空间的更多信息,请参阅Docker运行参考使用用户名称空间隔离容器

节点

节点是运行在所述多克尔引擎的实例的物理或虚拟机群模式

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

工作节点执行任务。

覆盖网络驱动程序

覆盖网络驱动程序为群集中的Docker容器提供了开箱即用的多主机网络连接。

覆盖存储驱动程序

OverlayFS是Linux的文件系统服务,为其他文件系统实现 联合安装。Docker守护程序支持它作为存储驱动程序。

母像

映像的父映像FROM在映像的Dockerfile中的指令中指定的映像。所有后续命令均基于该父映像。具有FROM scratch指令的Dockerfile不使用父映像,并创建基础映像

持久存储

持久性存储或卷存储为用户提供了一种向运行中的容器的文件系统添加持久性层的方法。该持久层可以驻留在容器主机或外部设备上。此持久层的生命周期未连接到容器的生命周期,从而允许用户保留状态。

注册表

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

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

资料库

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

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

SSH协议

SSH(安全外壳)是用于访问远程计算机和应用程序的安全协议。它提供身份验证并加密不安全网络(例如Internet)上的数据通信。SSH使用公用/专用密钥对对登录进行身份验证。

服务

一个服务是你要如何在群运行你的应用程序容器的定义。在最基本的级别上,服务定义在集群中运行哪个容器映像以及在容器中运行哪个命令。出于编排目的,该服务定义“期望状态”,这意味着要运行多少个容器作为任务和部署容器的约束。

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

服务发现

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

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

一群

是在运行的一个或多个发动机多克尔簇群模式

码头工人

不要将Docker Swarm与Docker Engine中的swarm模式功能混为一谈。

Docker Swarm是Docker的独立本机集群工具的名称。Docker Swarm将多个Docker主机集中在一起,并将它们公开为单个虚拟Docker主机。它提供了标准的Docker API,因此,已经可以与Docker一起使用的任何工具现在都可以透明地扩展到多个主机。

也称为:docker-swarm

群模式

Swarm模式是指嵌入在Docker Engine中的集群管理和编排功能。当您初始化新的集群(集群)或将节点加入集群时,Docker引擎将以集群模式运行。

标签

标签是应用于存储库中的Docker映像的标签。标签是如何区分存储库中的各种图像。

注意:此标签与为docker daemon设置的key = value标签无关。

任务

任务是一个群内的调度的原子单元。任务包含一个Docker容器和在容器中运行的命令。管理器节点根据服务规模中设置的副本数将任务分配给工作器节点。

下图说明了服务与任务和容器的关系。

服务图

联合文件系统

联合文件系统实现联合安装并通过创建层进行操作。Docker将联合文件系统与复制技术结合使用 ,为容器提供了构建模块,从而使它们非常轻巧,快速。

欲了解更多关于码头工人和工会的文件系统,请参阅泊坞窗和AUFS在实践中码头工人和增加了Btrfs在实践中,和泊坞窗并在实践中OverlayFS

联合文件系统的示例实现为 UnionFSAUFSBtrfs

虚拟机

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

与容器相比,虚拟机的运行量更大,提供了更多的隔离性,获得了自己的资源集,并且共享最少。

也称为:VM

体积

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

卷共有三种类型:主机,匿名和命名卷

  • 一个主机卷住在泊坞主机的文件系统,可以从容器中进行访问。

  • 一个名为量是码头工人管理在磁盘上创建卷,其中一个卷,但它取了一个名字。

  • 一个匿名的体积类似于一个名为量,但是,它可能很难,指相同体积随着时间的推移,当它是一个匿名卷。Docker处理文件的存储位置。

x86_64

x86_64(或x86-64)是指AMD发明的64位指令集,是Intel x86体系结构的扩展。AMD称其x86_64架构为AMD64,而Intel称其实施为Intel 64。

词汇表泊坞窗术语定义