Bootstrap

Docker的基础概念介绍

目录

一、引言

二、虚拟化介绍

1、虚拟化概念

2、耦合和解耦合概念

2.1、耦合性

2.2、耦合

2.3、解耦合

3、虚拟化作用

4、虚拟化工作原理

5、两大核心组件

5.1、QEMU

5.2、KVM

6、虚拟化类型

三、Docker概述

1、docker是什么?

2、为什么从传统服务器迭代到虚拟化

3、Docker特点

4、Docker容器 VS KVM

4.1、KVM:

4.2、Docker容器:

4.3、区别

 5、Docker的三大组成要素

6、Docker容器的运行逻辑

7、Docker 名称空间

8、控制组—cgroups(Control groups)


一、引言

Linux操作系统会有一个主进程,派生出其他进程来控制不同的服务。

二、虚拟化介绍

       虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。虚拟化在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

       目前主流的虚拟化技术包括开源的XEN、KVM,VMware的ESXi以及微软的Hyper-V。

1、虚拟化概念

将应用程序和系统内核资源进行解耦,以操作系统级别进行隔离,目的是提高资源利用率

2、耦合和解耦合概念

2.1、耦合性

       耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块 之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块 间接口的复杂性,调用的方式以及传递的信息。

2.2、耦合

       在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使类和构件之间的耦合最小。

2.3、解耦合

解耦合,字面意思就是解除耦合关系。

在软件工程中,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。

3、虚拟化作用

缓解及解决资源利用率的问题。实际的实例的性能相对而言比虚拟化的要稳定,功能要强大的多。

4、虚拟化工作原理

一种叫做 Hypervisor (虚拟机监控程序)的软件可有效分隔物理资源,并将这些资源分配给不同虚拟环境(也就是需要这些资源的任务)使用。虚拟机监控程序可能位于操作系统的顶层(例如在便携式计算机上),或者直接安装在硬件上(例如服务器),这是大多数企业使用虚拟化的方式。虚拟机监控程序接管物理资源,并对它们进行划分,以便虚拟环境能够对其进行使用。

来自物理环境的资源根据需要进行了分区,分配给了很多虚拟环境使用。用户在虚拟环境(通常称为客户机或虚拟机)内部,能够与计算任务交互,并运行计算。虚拟机作为单个数据文件运行。与任何数字文件相同,虚拟机可从一台计算机迁移至另一台计算机,在任何一台计算机上打开,工作方式都是相同的。

当虚拟环境正在运行时,如果用户或程序发出一条指令,请求来自物理环境的更多资源, 虚拟机监控程序就会将请求传递到物理系统并缓存更改,所有这些步骤都接近本机速度(特别是如果该请求来自基于 KVM,即基于内核的虚拟机的开源虚拟机监控程序)。

5、两大核心组件

5.1、QEMU

QEMU是I/O控制的模块,可以理解为队列,核心目的是调用资源内核中的资源,需要把KVM逻辑分割出来的资源运输给QEMU,再给虚拟机。

QEMU是I/O控制的模块,可以理解为队列,核心目的是调用资源内核中的资源,需要把KVM逻辑分割出来的资源运输给QEMU,再给虚拟机

5.2、KVM

用来逻辑分割物理资源,抽象化为虚拟化资源,根据VMM里的配置,进行逻辑分割,给应用程序去进行虚拟化。

只接受来自QEMU的请求指令。对于应用程序直接过来的敏感指令会拦截,然后通过接口发给QEMU&#

;