虚拟机:
KVM、 vmware workstation、 exsi 、 xen
容器:轻量级虚拟机
Docker、podman containerd
相同:资源隔离、独立的操作系统,提供隔离服务
不同:
1、底层的实现技术不一样,虚拟机的核心是模拟器,而容器的核心是namespace + Cgroup(资源限制);
2、虚拟机的宿主机可以不要OS,但容器的宿主机必须要有OS;
3、隔离性:
虚拟机的隔离性好;
容器的隔离性差,只能实现进程级隔离;
资源限制
4、虚拟机包含完整的操作系统,而容器只包含操作系统的操作空间
提供的服务级别不同:
虚拟机提供的是操作系统级别的服务 -Iaas
容器提供的是应用级别的服务 -Paas
5、可移植性
镜像(一个虚拟机镜像少则几百m,大则几个G);
一个容器少则几十K,正常来讲是几十到上百M;
容器的架构组成:
容器镜像:包含了阉割的操作系统以及所提供的应用程序的一个打包的文件
redis镜像、nginx镜像、httpd镜像、mysql镜像
镜像仓库:用于存储容器镜像,以便于镜像分发
(公共镜像仓库、私有镜像仓库)
容器:镜像运行起来就是容器,容器提供应用级别的服务
docker:计算(cpu、memory)、存储(disk)、网络(network)
操作系统组成:
内核空间: 驱动管理、任务管理、内存管理
用户空间
虚拟机的底层原理是调用hypervisor监视器,模拟底层硬件,虚拟出一台4核8G资源VM;
Docker底层原理:在单独的OS运行,没有模拟硬件,Docker管理器软件,在资源底层起容器
容器和虚拟机的区别
于 2023-04-04 12:00:26 首次发布