云计算de小白
Docker是一个开源的容器化平台,可以将应用程序及其依赖的环境打包成轻量级、可移植的容器。
Docker为什么这么受欢迎呢?原因很简单:Docker可以解决不同环境一致运行的问题,而且占用资源少,速度快。
所以好的东西应该被更多人喜欢,因为Docker确实解决了我们日常的开发和运维问题。
例如:在如今的微服务架构中,我们可以将应用程序拆分成多个独立的服务,每个服务都运行在独立的容器中。
这不仅方便了开发、测试和部署,还可以让Docker容器在不同的操作系统和平台上运行,确保跨平台的一致性。
图片
多个容器可以在同一台机器上运行并与其他容器共享其操作系统内核,每个容器作为用户空间中的独立进程运行。
虚拟机
虚拟机,全称是Virtual Machine,缩写为“虚拟机VM”。
虚拟机是一种通过软件模拟出来的计算机系统,可以在物理硬件上运行多台虚拟的计算机。
如下图所示:
图片
虚拟机是运行在物理机(宿主机)上的独立计算环境,具有独立的操作系统、应用程序和资源。
例如:一台服务器可以模拟多台“虚拟机”。
此时虚拟机运行在物理主机上,其硬件资源(如CPU、内存、磁盘等)由主机提供并虚拟化。
虚拟机管理工具,常见的有:VMware、Hyper-V...等,主要用于创建/和管理虚拟机。
虽然看上去多了几台“服务器”,但多台虚拟机的操作系统却共存并运行在同一个硬件环境中。
虚拟机和容器虽然都是虚拟化技术,但是操作方式和用途都不一样,我重点说一下两者的区别。@mikechen
Docker 与虚拟机之间的区别
图片
虚拟机较重,Docker 相对较轻
这就是Docker与虚拟机最大的区别,我把它放在第一位。
首先,虚拟机提供了完整的操作系统和硬件环境,适合需要隔离的多操作系统环境。
虚拟机非常重要,因为每个虚拟机都需要搭载完整的操作系统(OS)。
因此当使用虚拟机时,即使应用程序本身很小,但是由于操作系统的存在,整体的体积也会变得庞大。
因此这使得虚拟机不仅占用大量的存储空间,而且在启动时需要加载整个操作系统,导致启动时间较长、运行过程中资源占用较高。
这也是Docker虚拟化技术如此受欢迎的最重要的原因。
Docker 通过共享主机操作系统的内核来避免为每个应用程序分配单独的操作系统。
这样,每个Docker容器只包含:应用程序及其依赖项,减少了镜像的大小,并且启动更快,运行更轻量。
这也是Docker相较于虚拟机的最大优势之一,在微服务和容器化应用场景下尤其有效。
虚拟机启动慢,Docker启动快
刚才讲了这两者最大的区别,就是虚拟机需要搭载操作系统(OS)。
因此虚拟机启动时间较长是正常的,因为:虚拟机需要启动一个完整的操作系统。
Docker容器不需要启动操作系统,因此响应速度更快。
虚拟机占用资源较多,Docker占用资源较少
由于虚拟机需要运行独立的操作系统,所以资源开销比较大。
例如:虚拟机需要占用较多的CPU、内存、磁盘空间,并且每个虚拟机都有固定的资源分配。
因此一台服务器一般无法虚拟出很多台“服务器”。
另一方面,Docker 容器共享主机的操作系统内核,不需要额外的操作系统开销。
因此它占用的资源较少,且处于“进程”级别,所以资源利用率较高。
虚拟机适合重量级隔离,容器是轻量级隔离
当然,说了这么多,并不是说虚拟机没用,关键还是要用在合适的应用场景上。
例如,虚拟机适用于需要强隔离的多操作系统环境,经常被用来运行不同的操作系统、测试环境,或者对安全性有较高要求的场景。
Docker容器比较适合:微服务架构、持续集成与交付(CI/CD)、高密度部署、轻量隔离场景。
标签:容器,操作系统,运维,虚拟机,应用程序,开源,Docker,运行 From: https://blog.csdn.net/m0_74885516/article/details/143565536