美文网首页
Docker与虚拟机简单深入一哈

Docker与虚拟机简单深入一哈

作者: 晏子小七 | 来源:发表于2019-08-07 10:10 被阅读0次

Docker:Docker是一种轻量级的操作系统虚拟化解决方案,它想达到一次构建到处运行,类似于Java虚拟机的效果,它最初诞生于2013年,是基于go语言的实现,容器技术是和我们的宿主机共享硬件资源及操作系统可以实现资源的动态分配。
容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行

虚拟机:虚拟机在本质上就是在模拟一台真实的计算机设备,同时遵循同样的程序执行方式。虚拟机能够利用“虚拟机管理程序”运行在物理设备之上。反过来,虚拟机管理程序则可运行在主机设备或者“裸机”之上。

传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给他的资源将全部被占用。,每一个虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。

通俗一点:举个例子,Docker就是苹果手机中的各种APP,只需要一个系统就可以下载自己所需的应用,但是虚拟化技术相当于你的苹果手机安装一个庞大软件,这个软件上安装安卓系统、魅族系统等,每个系统上还要安装各类应用,比较麻烦。

对比:


图片.png

虚拟机:
server - 表示真实电脑。
Host OS - 真实电脑的操作系统,例如:Windows,Linux
Hypervisor - 虚拟机平台,模拟硬件,如VMWare,VirtualBox
Guest OS - 虚拟机平台上安装的操作系统,例如CentOS Linux
App - 虚拟机操作系统上的应用,例如nginx

Docker:
server - 表示真实电脑。
Host OS - 真实电脑的操作系统,例如:Windows,Linux
Docker Engine - 新一代虚拟化技术,不需要包含单独的操作系统。
App - 所有的应用程序现在都作为Docker容器运行。

这种体系结构的明显优势是,不需要为虚拟机操作系统提供硬件模拟。所有应用程序都作为Docker容器工作,性能更好。但问题是,由于虚拟化了支撑硬件,所以虚拟机能做到实时的热迁移、热克隆、挂起等操作,docker做不到这种高级功能。
二者各有所长,Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库。

图片.png

其中Guest OS层和Hypervisor层在docker中被Docker Engine层所替代。虚拟机的Guest OS即为虚拟机安装的操作系统,它是一个完整操作系统内核;虚拟机的Hypervisor层可以简单理解为一个硬件虚拟化平台,它在Host OS是以内核态的驱动存在的。
Hypervisor虚拟化内存的方法是创建一个shadow page table。正常的情况下,一个page table可以用来实现从虚拟内存到物理内存的翻译。在虚拟化的情况下,由于所谓的物理内存仍然是虚拟的,因此shadow page table就要做到:虚拟内存->虚拟的物理内存->真正的物理内存。
虚拟机实现资源隔离的方法是利用独立的OS,并利用Hypervisor虚拟化CPU、内存、IO设备等实现的。

详细对比:


图片.png

相关文章

  • Docker与虚拟机简单深入一哈

    Docker:Docker是一种轻量级的操作系统虚拟化解决方案,它想达到一次构建到处运行,类似于Java虚拟机的效...

  • docker

    1.docker 镜像 容器 2.docker与虚拟机 3.docker简单操作 1.docker 镜像 容...

  • Docker 入门(2019-07-31)

    大纲 docker是什么? 谁在使用Docker? docker与虚拟机 docker的使用安装Docker Ma...

  • docker学习笔记

    docker与虚拟机的区别 虚拟机虚拟化了物理机,和docker只是对进程进行隔离。虚拟机是为提供系统环境而生的,...

  • 对docker进一步的理解

    简介 docker简单可以理解为容器技术,和虚拟机有着相似的概念.但和虚拟机的实现方式全然不同. 1.docker...

  • Docker 技术学习

    Docker 技术学习 Docker 简介 什么是容器 : 是一种虚拟化的方案,与传统的虚拟机不同,传统的虚拟机是...

  • Docker 1小时入门

    [[toc]] Docker 与 虚拟机 Docker 是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统...

  • docker安装使用(win)

    docker技术与虚拟机技术相似,不过却比虚拟机方便,更利于开发。 一 下载docker前的一些准备 二 下载安...

  • Docker基础(1) 原理篇

    Docker是什么 Docker的构成 Docker的分层和写时拷贝策略 Docker与主流虚拟机的区别 Dock...

  • 使用docker部署consul

    1. 创建docker虚拟机 1. 提前安装好docker与virtualbox,然后创建4个虚拟机 2. 修改d...

网友评论

      本文标题:Docker与虚拟机简单深入一哈

      本文链接:https://www.haomeiwen.com/subject/shpndctx.html