Docker核心组成与Docker Engine

Docker核心组成与Docker Engine简介


在Docker中,我们往往不会直接操作基于Linux的Namespace、CGroups,Union File System等这些底层资源分配和调度相关的操作,在日常使用中,我们操作的更多的是镜像、容器、网络和数据卷

镜像 (Image)

镜像是只读的,包含了程序运行所必要的初始环境的文件系统。

Docker使用的AUFS(Advanced Union FIle System)使得其能实现增量式的镜像系统。

每个镜像下拥有多个镜像层,每个镜像层又可以有多个子镜像层,以此类推,简单理解可以类比为文件夹,内部的文件相当于快捷方式,也就是指针。

因为这种结构,每次的修改只会产生新镜像,而不是更新原有镜像(其内部是不可变的)。

容器 (Container)

容器是用来对环境隔离的基础设施。与镜像不同的是,容器包含镜像,也依赖于镜像。其关系相当于类和类的实例。

Docker容器有三部分组成

  • 一个Docker镜像
  • 一个运行环境
  • 一个指令集

网络 (Network)

在容器的基础上,网络就是基于现已成熟的计算机网络体系,以容器为单位进行数据通信,实现容器与容器之间的数据通信。

Docker除了基本的网络通信,也拥有创建虚拟网络,进行网络隔离等功能。于此之外,利用Docker还可以实现独立的DNS环境,可以在不修改代码和配置的情况下迁移容器。在不同的计算机上也可以通过Docker连接到虚拟网络中,达到硬件屏蔽。

数据卷 (Volume)

数据卷针对的是文件和目录。在虚拟机中,文件系统如果出了问题,我们可以通过格式化的方式重置文件系统使其恢复,虽然心智负担很小,不过这样弊端很明显:不安全。

Docker为我们考虑到了数据独立性。得益于Docker的Union File System,在使用层面,我们不必考虑底层各种File System、虚拟机的适配,我们可以很方便地进行文件系统的挂载操作。除了同宿主机的文件共享外,还能够在容器间共享以及创建独立目录持久存放。

Docker中通过共享宿主机文件夹/文件、容器共享,独立目录等这些方式进行数据共享和持久化的文件或者目录,称为数据卷。

Docker Engine

Docker Engine为工业级容器引擎( Industry-standard Container Engine),其核心部分为容器引擎,其中最重要的是Docker daemon和docker CLI。

上述的镜像、容器、网络、数据卷都在Docker daemon中实现,包括容器管理、应用编排,镜像分发等功能。Docker daemon通常以服务的形式运行,也就是我们常说的Docker服务。除此之外,我们可以通过Docker向外暴露的RESTful API操作Docker daemon中的容器和镜像等资源进行管理。而方式,我们一般通过CLI,也就是命令行这种适应性更强的方式。介于此,Docker内置了Docker CLI控制台程序,方便同Docker daemon进行交互。

					 -----------------------------------------
					|Docker deamon  <=== REST ===> Docker CLI |
					 -----------------------------------------
								    Docker Engine
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值