Docker简介
一,什么是虚拟化,容器化
1.物理机:
实际的服务器或者计算机
2.虚拟化:
将一台计算机虚拟成多台不同操作系统的计算机,在一台计算机上面可以同时运行多个逻辑计算机。并且应用程序相互独立不影响。
3.容器化:
虚拟化的一种技术,这种技术将操作系统内核虚拟化,可以允许用户空间软件实例被分割成几个独立单元,在内核运行,而不是只有一个内核运行。这个软件实例,也被称为一个容器
二.为什么虚拟化,容器化
1.环境标准化
Docker的镜像提供除了内核外完整的运行环境,确保了应用环境一致
2。弹性收缩
个别根据1业务情况,动态调整资源
3.差异化
同时提供多套差异化的执行环境
4容易维持和扩展
docker使用分成部署以及镜像技术,使得应用重复部分的复用变得简单,以及应用的维护更新也容易,基于基础镜像的扩展也非常简单
容器比虚拟机更轻量,启动更快,因为docker不需要虚拟内核
三 虚拟化实现方式
虚拟机
存在与硬件和操作系统间的虚拟化技术.虚拟机通过伪造一个硬件接口,将一个操作系统层及其以上嫁接到硬件上面。
容器
存在与操作系统和函数直接的接口。容器通过伪造一个操作系统接口,将一个函数库及其以上嫁接到操作系统上面。
JVM虚拟机
存在与函数库层和应用程序之间的虚拟化技术。java虚拟机同样具有跨平台性,实际上是虚拟化的功劳。JVM就是在应用层和函数接口层建立的一个抽象层,对下通过适应不同的操作系统库,对上提供统一运行环境使得开发者能够调用不同操作系统的函数库
主机虚拟化(虚拟机)实现
主机虚拟化的原理是通过在物理服务器上安装一个虚拟化层来实现。这个虚拟化层可以在物理服务器和客户操作系统之间建立虚拟机,使得它们可以独立运行。
从软件框架的角度上,根据虚拟化层是直接位于硬件之上还是在一个宿主操作系统之上,将虚拟化划分为 Type1 和 Type2.
Type1 类的 Hypervisor(Hypervisor 是一种系统软件,它充当计算机硬件和虚拟机之间的中介,负责有效地分配和利用由各个虚拟机使用的硬件资源,这些虚拟机在物理主机上单独工作,因此,Hypervisor 也称为虚拟机管理器。)直接运行在硬件之上,没有宿主机操作系统,Hypervisor 直接控制硬件资源和客户机。典型框架为 Xen,Vmware ESX。
Type2 类的 Hypervisor 运行在一个宿主机操作系统之上(Vmware Workstation)或者系统面,Hypervisor 作为宿主机操作系统中的一个应用程序,客户机就是在宿主机操作系统上的一个进程
容器虚拟化实现原理
容器虚拟化,有别于主机虚拟化,是操作系统层的虚拟化。通过namepace进行各个程序的隔离,加上cgroups进行资源控制,以此来进行虚拟化
容器A和B可以是不一样的操作系统,容器A里的文件容器B看不见,反之也一样,会调用统一内核接口