Infrastructure (基础设施):是硬件设施,理解为主机,即笔记本,云服务器
Host Operating System (主机操作系统):是主机的物理操作系统,即日常说的操作系统,Linxu、Windows
Hypervisor (虚拟机监视器):是运行在基础物理服务器和虚拟操作系统间的中间软件层,各应用和虚拟系统可共享硬件
Guest OS (宿主系统):虚拟的操作系统,虚拟机内部运行的操作系统,有完整的硬件和内核(Docker是共享)
Bins/Libs (命令/资源):二进制命令和资源库
APP (应用程序):用户安装的程序
缺点:要运行几个隔离的应用,就要监视器启动几个宿主系统,也就是几个虚拟机。虚拟机模拟了多个隔离的系统,占用了很多的硬盘、CPU、内存,所以启动也很缓慢。
6.2 Docker
Docker是运行容器的引擎,我们将 操作系统的基础库文件、应用程序、所需的依赖等打包到镜像中,然后通过镜像创建容器(类和对象),而容器就在Docker中运行
Docker Daemon (守护进程):守护进程取代Hypervisor,是个进程,负责管理Docker容器
守护进程与宿主机通信,为容器分配资源
使用宿主机的硬件资源,无需虚拟化硬件资源,所以容器无需加载内核,因此是秒级
Docker使用了cgroup + namespace,前者限制资源集,后者限制可访问权限
Docker是Client-Server结构,守护进程在宿主机上,客户端socket连接进程管理运行在主机上的容器
6.3 对比
虚拟机:彻底隔离整个运行环境,每个运行的虚拟系统都是完全隔离的
Docker:隔离不同的应用程序,比如数据库,后端,前端等
比对项 Container(容器) VM(虚拟机)
启动速度 秒级 分钟级
运行性能 接近原生 有所损失
磁盘占用 MB GB
数量 成百上千 一般几十台
隔离性 进程级别 系统级别
操作系统 只支持Linux 几乎所有
封装程度 只打包项目代码和依赖关系,共享宿主机内核 完整的操作系统
7. 图形化界面