本文预计阅读耗时10分钟
aufs
aufs(advanced multi layered unification filesystem)是docker作为存储后端的一个linux文件系统。它在linux文件系统上实现了union mount(联合挂载)。
base images
没有任何父镜像的镜像称为基础镜像。
boot2docker
boot2docker是一个为运行docker container特制的linux发行版。不过boot2docker管理工具在MAC和windos上已经过时,被替换为docker-machine。你可以通过docker Toolbox进行安装docker-machine。
btrfs
btrfs(B-tree file system)时docker作为存储后台的一个linux文件系统。是一个写时拷贝文件系统。
build
build是一个通过Dockerfile构建docker镜像的程序。build使用Dockerfile和context(上下文)进行工作。context指的docker构建镜像时所采用的目录里的一系列文件。(此处翻译不知道是否准确,待查)
cgroups
cgroups是一个linux内核特性,用于限制,登记及隔离一个进程集合的资源的使用(CPU,memory,disk I/O,network等)。docker通过cgroups来控制和隔离资源使用范围。
Compose
Compose是一个在docker上定义和运行复杂应用程序的工具。通过compose,你可以在一个文件上中定义一个多容器组合(multi-container)的应用程序,这样你通过一个指令就完成了让你程序运行起来的所有工作。
也被称为docker-compose fig
copy-on-write
docker通过采用写时复制技术和联合文件来优化镜像和容器的资源,提升速度性能。一个实体的多个拷贝共享一个实例,每一个拷贝只在自己特有的layer来做更改。多个容器可以共同访问一个镜像,并在一个可写层对容器层面进行修改,这种修改当容器删除后就被移除。这样可以优化容器的启动时间,提升容器性能。
镜像本质上是基于基础镜像下的一个可写文件系统阶层,并通过与基础镜像的差异来构建。(翻译可能不准确,待查)。这样就可以最小化镜像的存储空间,并允许共享开发。
想要获取更多有关docker上下文写时复制的信息,请参阅Understand images, containers, and storage drivers.
container
容器是一个docker镜像的运行实例。
docker容器由一个dokcer镜像执行环境和一系列标准指令组成。
这个概念借鉴于船运集装箱概念,集装箱定义了全球货物运输的标准,而docker定义了软件运输的标准。
data volume
data volume是在一个或多个容器里经过特殊设计的文件夹,可以绕过联合文件系统。data volume设计目的在于独立于容器的生命周期来保存数据。当你删除一个容器时docker并不自动删除volumes ,docker也不会对不归属于任何容器的volumes进行“垃圾收集”处理。
Docker
这个概念docker管理员可以参考
Docker项目作为一个整体,可以当做开发人员和系统管理员用于开发、搬运和运行软件的平台。docker daemon进程在宿主机后台运行,管理镜像和容器。
Docker for MAC
我不关心,所以不翻译
Docker for Windos
我不关心,所以不翻译
Docker Hub
Docker Hub是一个便于使用docker和其组件的资源集中平台。它提供以下服务:
docker镜像托管用户认证
自动镜像构建以及工作流程工具,如build triggers
web端集成了Github和bitbucket。
Dockerfile
Dockerfile是一个包含了所有你想构建一个镜像需要手动执行的命令的文本文件。Docker可以通过自动读取Dockerfile中的指令来构建一个镜像。
filesyetem
文件系统是操作系统用于命名文件及分配存储位置的方法,可以高效的存储和快速检索文件。
比如:
linux:ext4、aufs、btrfs、zfs windos:NTFS macOS:HFS+
image
docker镜像是容器的基础。镜像是一个容器运行时内部需要的一个裁剪的根文件系统和对应执行参数的集合。典型的镜像包含一个堆叠在一起的分层文件系统的联合。(翻译不准确,待查)。镜像时无状态的,并且从不进行更改。
libcontainer
libcontainer提供了一个通过namespaces、cgroups和文件系统访问权限控制来创建容器的原生Go调用。它允许你在容器创建之后执行额外的操作来管理容器的生命周期。
libnetwork
libnetwork提供给一个原生Go调用,用于创建和管理容器的网络命名空间和其他网络资源。它允许你在容器创建之后执行额外的操作来管理容器的网络生命周期。
link
links提供了一个遗留接口用于运行在同一宿主机上的不同容器之间互相连接,而不需要暴露主机网络端口。可以用Docker网络功能进行取代。
Machine
Machine是一个Docker工具,可以让你十分便捷的在你的电脑、云端或者自己的数据中心上创建docker hosts。它创建服务,并在其上安装docker,然后配置docker客户端并和其通信。
也被称为docker-machine
node
节点是一个运行了swarm模式的docker Engine实例的物理机或者虚拟机。Manager nodes执行swarm的管理和业务流程。另外,Manager nodes也是worker nodes。worker nodes执行具体任务。
overlay network driver
overlay network driver提供了集群内部多宿主机间容器网络通信。
overlay storage driver
OverlayFS 是一个用于linux上的文件系统服务,可以为其他文件系统实现union mount。它被作为一个存储驱动由docker daemon支持。
registry
Registry 是一个包含响应Registry API镜像库的托管服务。
默认的Registry可在Docker Hub上用浏览器或者用docker search 命令进行访问。
repository
repository(仓库)是一系列相关镜像的集合。仓库可以通过推送到registry服务器进行共享。位于同一仓库的不同镜像可以通过标签来进行标识。
service
service是一个你想要如何在swarm上运行你程序容器的一种定义。最基本层次的service定义了在swarm上运行哪个容器以及此容器运行的指令。对于业务而言,service定义了“desired state”(你所想要的状态),意味着可以指定多少容器运行任务,以及部署容器时的系统参数。
service discovery
swarm模式下的service discovery是一个DNS组件,可以在swarm内部经由网络层实现自动注册每个处于此swarm下的service。此网络下的容器共享用于service交流的DNS映射,所以任意在此网络下的容器可以通过service名字来进行访问。
在同一网络层的service可以不需要通过暴露特定的端口来生效。swarm内部的负载均衡器可以自动在活动的任务中将请求分发到VIP(DNS服务集群)service。
swarm
swarm是由一个或多个运行在swarm模式下的docker engine组成的集群。
Docker swarm
不要将Docker swarm和dockerengine中的swarm模式混淆。
Docker swarm是一个单机版原生的docker集群服务的名字。Docker swarm将多个docker隐藏多个主机组合起来这一细节,从外部看起来就像一个虚拟的docker主机。
它基于标准的Docker API,所以任何可以在单机Docker使用的工具现在都可以透明的操控多个hosts。
swarm mode
swarm node对应于嵌入docker engine的集群管理和业务特性。当你初始化一个swarm(集群)或为swarm添加一个nodes的时候,Docker Engine就运行在swarm mode。
tag
tag是一个用于表示仓库中docker镜像的标签。tags是在仓库中如何区分海量镜像的关键。
注意:这个标签和docker daemon中key=value这种标签没有关联。
task
task是swarm集群中调度的最小单位。一个task承载了镜像以及该镜像内部运行的指令。管理节点(manager node)根据服务规模的副本集来分配task给woker nodes。
下面这幅图介绍了service、tasks和container的关系:
Toolbox
Docker Toolbox是一个为Mac和windos用户的工具安装包。它采用VirtualBox来进行虚拟化。
下面不感兴趣不翻译了。
Union filesystem system
Union filesystem system实现了联合挂载(union mount),并通过创建layers来进行操作。Docker使用Union filesystem system连同写时复制技术容器提供组件(原文是building blocks积木),使得容器非常轻量级而且非常快。
获取更多有关Docker和Union filesystem system信息,参阅 Docker and AUFS in practice, Docker and Btrfs in practice, and Docker and OverlayFS in practice
UnionFS,AUFS和Btrfs是实现Union filesystem system的几个例子。
virtual machine
虚拟机是一个模拟完整电脑和硬件的程序。它与其他用户共享硬件资源但隔离了操作系统。终端用户用起来就感觉就像他们在专属硬件上操作一样。
对比于容器,虚拟机运行起来笨重,提供了更好的资源隔离特性,拥有自己的资源集合,做到了最小共享。
也被称为:VM