问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Docker vs 虚拟机:你要知道的5个关键区别!

创作时间:
作者:
@小白创作中心

Docker vs 虚拟机:你要知道的5个关键区别!

引用
1
来源
1.
https://www.cainiaoxueyuan.com/yunwei/65958.html

Docker和虚拟机(VM)在大型架构经常被涉及,但很多同学并不清楚核心区别,下面重点详解5大Docker和虚拟机核心区别。

Docker

Docker是一种开源的应用容器引擎,它可以让开发者打包他们的应用,以及依赖包到一个轻量级、可移植的容器中。

Docker 在现代软件开发和运维中取得了巨大成功,并成为了容器化、和云原生技术的核心。

与虚拟机(VM)相比,Docker容器不需要运行一个完整的操作系统,而是共享宿主机的内核。Docker 使用操作系统级虚拟化(而非硬件虚拟化),每个容器共享宿主操作系统的内核,但各自有独立的用户空间。

这意味着 Docker 容器几乎没有额外的虚拟化开销,能在同一台机器上运行更多的容器。Docker非常适合构建微服务架构,每个微服务都可以打包成一个独立的容器。

虚拟机

虚拟机(Virtual Machine)是一种软件,它可以在一台物理计算机,上模拟出一台、或多台虚拟的计算机。

每台虚拟机都有自己的操作系统、内存、硬盘等,它们之间相互独立,就像是在不同的物理机上运行一样。常见的虚拟机软件,包含有:VMware Workstation、Hyper-V...等等虚拟化解决方案。

Docker和虚拟机区别

如下图:分别是Docker、与虚拟机的实现框架对比。主要包含如下几点:

1.性能不同

Docker是基于容器技术的,容器共享宿主操作系统的内核,但每个容器运行在用户空间的独立环境中。Docker容器非常轻量,启动迅速,消耗的资源较少。容器共享宿主机的操作系统内核,因此相对于虚拟机,容器的性能更加接近宿主操作系统。而虚拟机,是通过虚拟化技术模拟一台完整的计算机(包括:硬件、操作系统..等),所以,虚拟机更重,Docker更轻。

2.速度不同

docker启动速度极快,通常在几秒内完成,因为Docker容器直接运行在宿主操作系统上,无需启动完整的操作系统。而虚拟机,启动较慢,通常需要几分钟,因为虚拟机需要启动完整的操作系统(OS)。

3.隔离不同

虽然Docker容器,是相互隔离的,但它们共享宿主机的操作系统内核,因此,容器的隔离性相对于虚拟机来说较弱。虚拟机是完全隔离的,每个虚拟机都有自己的操作系统、内核和硬件虚拟化层。因此,虚拟机之间的隔离性非常强,不同虚拟机的操作系统、和内核不会互相影响。

4.迁移不同

容器,可以轻松地在不同环境之间迁移,比如:Docker的镜像可以在任何支持Docker的操作系统上运行,无论是开发环境、测试环境、还是生产环境。而虚拟机,通常是与特定操作系统、和硬件紧密绑定的,因此在迁移和跨平台兼容性方面通常不如容器灵活。

5.应用不同

虚拟机,通过镜像实现环境交付,但镜像分发不够灵活。Docker容器,通过Dockerfile记录构建过程,实现快速分发和部署,适合持续集成、和微服务架构。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号