当前位置:首页 > 虚拟机 > 正文

虚拟机和容器的关系


一、Docker容器与虚拟机区别我们传统的虚拟机必须模拟整个机器包括硬件。需要二进制文件和库,以及完整的用户操作系统。
容器技术与我们的宿主机共享硬件资源和操作系统,实现资源的动态分配。
容器包含应用程序和所有客户端,与其他容器共享核心。容器在主机操作系统的用户空间中作为单独的进程运行。
虚拟机和容器基于硬件和操作系统。虚拟机有一个hypervisor层,hypervisor是整个虚拟机的核心。它为虚拟机提供虚拟操作系统并管理虚拟机的运行。每个虚拟机都有自己的系统以及系统库和应用程序。
容器没有Hypervisor,每个容器与宿主机共享硬件资源和操作系统,因此Linux容器中不存在Hypervisor带来的危害。
但是虚拟机技术也有它的优点。它还支持跨操作系统虚拟化。例如,它可以在Linux操作系统下运行Windows虚拟机。
从虚拟化的角度来看,传统的虚拟化技术支持虚拟资源,而进程虚拟化技术的增加,提供了更加轻量级的虚拟化来实现进程和资源。
从架构的角度来看,Docker比虚拟化少了两层。hypervisor层和GuestOS层使用DockerEngine进行调度和隔离,所有应用程序都属于运行主机,所以从体积上来说,Docker比虚拟机重,性能比虚拟化好,接近裸机金属性能。
从应用场景来看,Docker和虚拟化各有擅长的领域,在软件开发、测试场景和运维支持场景上各有优缺点。br/>docker启动速度以秒为单位。机器互联网有时很奇怪。
Docker需要的资源更少。Docker使虚拟化在现场发挥作用。
Docker更重要。Docker架构可以共享通用的核心和应用程序库,占用内存很少。在相同的硬件环境下,Docker镜像的运行次数远远多于虚拟机,系统利用率非常高。
与虚拟机相比,docker隔离性较弱。Docker是进程之间的隔离,虚拟机可以匹配系统隔离。
安全性:Docker的安全性较弱。持有Dockerroot与持有主机root相同。宿主虚拟机的root权限和宿主虚拟机的root权限是分离的,虚拟机只使用Intel的VT-d、VT-x等1种硬件技术来进行分解和相互通信。
可管理性:Docker管理工具尚未成熟。各种虚拟化技术都有成熟的管理工具。
高可用性和可恢复性:Docker对业务的高可用支持是通过快速部署来完成的。虚拟化拥有负载均衡、可用性、容错、迁移、数据保护等成熟的安全机制,并已在生产使用中得到验证。
创建和删除速度:虚拟化创建需要几分钟,Docker容器创建需要几秒钟。Docker的快速迭代意味着可以在开发、测试和部署方面节省大量时间。
交付部署:虚拟机可以实现镜像的持续交付,但镜像的分发无法系统化;


二、tomcat和虚拟机的关系tomcat容器的启动离不开JVM。
查看CSDN博客了解到:tomcat,apache的免费开源Web应用服务器,是用java语言编写的。换句话说:tomcat也是一个java应用程序。tomcat容器的启动离不开JVM。