使用Vagrant和KVM 或者Hyper-V我们可以构建和运行虚拟机。相关的工具比如 ansible, chef 或者puppet可以用来进行环境的设置和配置。

虚拟机和Docker都能够给一台宿主机上的应用提供隔离的运行环境。区别是什么呢?

从上图右边虚拟机架构图能看出,虚拟机里在宿主操作系统和物理硬件之间多了一个中间层:Hypervisor。

Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,事实上成为虚拟环境中的“元”操作系统,Hypervisor可以协调访问服务器上的所有物理设备和虚拟机,也称为虚拟机监视器(Virtual Machine Monitor)。Hypervisor是所有虚拟化技术的核心。当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统,每台虚拟机有自己的虚拟操作系统和存储空间,因此需要消耗宿主机大量的物理资源,同时也需要花费一定时间来启动。

而上图左边,Docker直接运行在宿主机的操作系统上,没有Hypervisor这个中间层。Docker实际上就是运行于操作系统上的普通进程,通过Linux Primitives实现的彼此隔离,但是共享同一个操作系统内核。


正因为这种共享性,使得Docker的资源占用远小于虚拟机,而且启动速度也远远快于虚拟机。

虚拟机和Docker的最大区别相关推荐

  1. docker、LXC、LXD的区别及传统的虚拟机与操作系统虚拟化的区别

    1. 概念解释 1.1. Docker Docker是一个用于在集中式平台上创建.部署和运行应用程序的开源工具.这使得主机的操作系统通过容器运行具有相同Linux内核的应用程序,而不是创建一个完整的虚 ...

  2. 虚拟机与Docker有何不同?

    本文讲的是虚拟机与Docker有何不同?[编者的话]各种虚拟机技术开启了云计算时代:而Docker,作为下一代虚拟化技术,正在改变我们开发.测试.部署应用的方式.那虚拟机与Docker究竟有何不同呢? ...

  3. 虚拟机内 docker启动 局域网无发访问 问题解决

    虚拟机内 docker启动 局域网无发访问 问题解决 参考文章: (1)虚拟机内 docker启动 局域网无发访问 问题解决 (2)https://www.cnblogs.com/Pualfly/p/ ...

  4. docker run与docker start的区别?

    docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start). docker start的作用是:重新启动已 ...

  5. 安装虚拟机和docker封装

    安装虚拟机和docker封装 一.下载安装VirtualBox 官网下载VirtualBox 安装就不说了,一直next就行了. 二.配置并安装虚拟机 先运行VirtulBox程序,打开程序后第一件事 ...

  6. docker save 与 docker export 的区别

    缘起 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. docker save和docker export都能导出镜像包,咋看起来区别似乎不大.本文就 ...

  7. vagrant给vmbox创建虚拟机及docker安装mysql和redis

    一.安装vmbox和vagrant 1.下载地址 Vagrant: https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64. ...

  8. 一览生信分析的各种工作环境—Linux子系统、双系统、虚拟机和Docker

    " 本文围绕计算机操作系统,概述了当下各种生信分析的工作环境." 一文掌握Conda软件安装:虚拟环境.软件通道.加速solving.跨服务器迁移 01 - Linux子系统 Wi ...

  9. 苹果虚拟机和双系统的区别 苹果虚拟机怎么安装

    相信一些使用苹果电脑系统的小伙伴们在使用过程中,都会遇到一个问题,那就是当他们想要使用Windows系统软件或功能的时候,应该如何实现呢?目前确切的解决办法有安装虚拟机和双系统两种,这两种是有一定区别 ...

最新文章

  1. Hibernate5.x Idea搭建
  2. [翻译]pytest测试框架(一)
  3. mysql,gone away, hy000, reconnect,Mysql大sql文件导入
  4. matlab怎么安装compiler,关于MATLAB中compiler配置问题
  5. 10.25模拟 三角形
  6. Pod Preset玩转K8S容器时区自动配置 1
  7. C语言实现电子音乐相册---粤嵌GEC6818嵌入式系统实训
  8. java: 代码过长_给初学Java,知道这4点太重要了!
  9. 双变量空间自相关_空间计量经济学的发展及其应用,经济模型总会需要
  10. JavaScript面试题整理
  11. pwdx 查看进程启动时的工作目录
  12. 系分 - 企业信息化战略与实施
  13. 汽车CAN通信解析(一)
  14. Spring Boot 之---什么是热部署?---怎么使用?
  15. oled u8g2如何显示中文(实测有效)
  16. Springboot:整合DubboProvider的配置以及Comsumer的配置
  17. GYM 101350D. Magical Bamboos
  18. 微软正打造新一代 Windows 操作系统
  19. vr游戏模型测试软件,Steam VR性能测试工具介绍
  20. F28335 PWM触发ADC采样 代码+注释

热门文章

  1. sonar 上安装插件之后,展示的代码规则
  2. 文献学习(part33)--Clustering by fast search and find of density peaks
  3. CSS基础(part12)--盒子模型之外边距
  4. 新书发布:时隔一年,我的第二本书终于来了
  5. 什么是 SAP Commerce Cloud 的 Paragraph component
  6. 使用 generator-easy-ui5 快速创建 SAP UI5 应用的工程结构
  7. SAP UI5 应用开发教程之十五 - 对话框和 Fragments 的使用方式
  8. SAP 电商云 Spartacus UI 点了 Shipping Method 之后的执行逻辑
  9. BUG! exception in phase semantic analysis in source unit
  10. 自己动手开发SAP Spartacus focus Directive的单元测试