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

docker相当于虚拟机吗


一、虚拟机与Docker有何不同Docker
Docker是一个开放平台,统一了应用程序的开发、打包和执行。Docker可以让您快速交付应用程序。Docker允许您将应用程序与基础设施分开,并将基础设施用作管理平台。Docker可以让您减少打包时间、加快测试速度、加快发布速度,并缩短开发和运行代码之间的周期。Docker通过结合容器化功能和内核工作流程并使用它们来帮助管理和发布应用程序来实现这一切。
虚拟机
虚拟机本质上模拟真实的计算机设备并遵循相同的运行程序方法。虚拟机可以使用虚拟机管理程序在物理设备上运行。此外,虚拟机管理程序可以在主机设备或裸机上运行。
传统的虚拟机需要模拟多台机器,包括硬件。每个虚拟机在启动时都会占用所有预分配的资源。每个虚拟机都包含应用程序、所需的二进制文件和库以及完整的用户操作系统。
Docker和虚拟机有什么区别?
虚拟机
1.虚拟机消耗大量资源,占用一定的内存和硬盘空间。即使虚拟机的应用程序实际仅使用1MB内存,其他程序仍然需要数百MB内存来运行虚拟机。
2.有很多多余的步骤。虚拟机是一个完整的操作系统,一些系统级的操作步骤,比如用户登录等是不能省略的。
3.启动速度慢。操作系统启动所需的时间取决于启动虚拟机所需的时间。应用程序实际运行可能需要几分钟的时间。
Docker
1.容器中的应用程序是直接在底层系统中的进程,而不是虚拟机中的进程。因此,启动容器相当于在本地机器上启动一个进程,而不是启动操作系统,速度要快得多。
2.占用资源少。容器只占用自己需要的资源,不占用未使用的资源。而且,虚拟机必然占用所有资源。,所有虚拟机都是独占资源。
3.体积小。容器应该只包含你使用的组件,但由于虚拟机是整个操作系统的封装,因此容器文件比虚拟机文件小得多。
二、docker相当于一个Linux上虚拟机吗?可以在docker上放置网站,提供外部访问吗目前,Docker内部使用Linux容器技术(LXC),与主机运行在同一操作系统上。这使得它可以与主机共享更多的系统资源。它还使用AuFS作为文件系统并为您管理网络。
AuFS是一个分层文件系统,因此您可以拥有只读分区和只写分区,并将两者结合起来。你可以把系统的共享分区设为只读,这个分区被所有容器共享,并给每个容器自己的可写空间
mitsky
3年前翻译
3个赞
翻译得很好!
好吧,假设你有一个容量为1GB的容器镜像(image)。。但是您可以使用Linux容器虚拟化(LXC)和AuFS共享1GB的容量,并且如果您需要1,000个容器,您仍然可以使用大于1GB的容器系统,假设它们都在同一系统映像上运行。
完全虚拟化的系统拥有分配给它自己的所有资源,只有最少的共享。您可以获得更多隔离,但它更大(需要更多资源)
使用Linux容器虚拟化技术(LXC),隔离消失了,但它们更轻,需要更少的资源。因此,您可以轻松地在主机上运行1000个容器,甚至无需眨眼。尝试使用Xen来做到这一点,我认为这是不可能的,除非你有一个非常强大的主机
Mitisky
3年前翻译
2人丁
丁丁翻译得好!
使用Linux容器虚拟化技术(LXC),一个完整的虚拟系统只需几分钟即可启动。
每个虚拟系统都有批评者和支持者。如果您想要一个完全隔离且资源经过验证的环境,完整的虚拟机是您的选择。如果您只是希望进程彼此隔离并希望在大小合理的主机上运行大量进程。那么Linux容器虚拟化技术(LXC)就是您的选择。