0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Docker容器与虚拟机的区别

汽车玩家 来源:今日头条 作者:闻数起舞 2020-05-03 17:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我曾经将Docker容器视为轻量级,精简的虚拟机。 进行这种比较是有道理的,因为至少在Docker的最初市场中,总是将其与虚拟机进行比较-例如," Docker花费的启动时间少于VM,等等"。

但是docker容器不是虚拟机。

让我们对Docker容器和虚拟机进行并排比较。

虚拟机

虚拟机(VM)是物理硬件的抽象,它将一台服务器变成很多服务器。 虚拟机管理程序允许多个VM在单台计算机上运行。 每个VM均包含操作系统,应用程序以及必要的二进制文件和库的完整副本-占用数十GB。 VM也可能启动缓慢。

> follow devkube.blogsopt.com

虚拟机架构

假设有许多层。 连接这些层后,它们便构成了虚拟机。

虚拟机基础结构的底层主要是虚拟机的硬件。

该硬件层主要是运行虚拟机所需的硬件池。 它主要由Ram组成-它可以是SSD(通常是SSD),甚至是低性能的HDD,CPU等。

在此层之上,运行一个主机操作系统-通常是Linux,有时是Windows。 在此之上,有一个称为管理程序层的层。 系统管理程序层有两种类型。 一种运行在主要用于数据中心的硬件层之上,另一种运行在用于VMware或VirtualBox等程序的操作系统之上。

在此Hypervisor层之上,运行来宾OS块。 假设您要彼此完全隔离地运行三种不同类型的应用程序,则需要启动三个独立的VM。 系统管理程序直接控制这三个VMS。

但是现在想象一下,这三个虚拟机有其操作系统-Linux或Windows。 现在,假设他们具有Linux操作系统,因此每个OS大约为700mb。 我们必须启动三个VM,这些VM在我们的操作系统上占据大约2.1GB的存储空间。 最重要的是,每个来宾OS都需要一套自己的bin /库-Python依赖项,Node模块等,以奠定运行该应用程序的基础。

现在,最后,我们在此之上具有我们的Application层,该层通常是您已构建的应用程序的源代码

什么是容器?

容器是应用程序层的抽象,将代码和依赖项打包在一起。 多个容器可以在同一台计算机上运行,并与其他容器共享其OS内核,每个容器在用户空间中作为隔离的进程运行。 容器占用的空间少于VM(容器映像的大小通常为几十MB),可以处理更多的应用程序,并且需要的VM和操作系统更少。

> Follow devkube.blogspot.com

Docker容器架构

Docker并不是魔术,而是需要一些基础硬件来运行。 因此,第一层(硬件层)是虚拟机层基础结构所共有的。

在此之上,有一个主机操作系统。 它可以是能够运行Docker的任何操作系统。 Docker支持所有主要的Linux发行版,并且有一些方法可以在Windows计算机和Mac上运行Docker。

现在进入第三层。 这里有一些有趣的东西。 Docker守护程序替换了该层,该层是虚拟机体系结构中的管理程序层。 该服务在后台运行,负责运行Docker容器。

然后Bin / Libray驻留在该应用程序的容器中,并且有该应用程序的源代码。 Docker守护程序管理所有这些容器层。

因此,我们不需要来宾操作系统,并节省了它所占用的内存量。 我们还保存了运行这些VM时机器上的负载。

在这里,每个应用程序都相互隔离,因为它已托管在不同的容器中,但仍位于同一主机OS上。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 虚拟机
    +关注

    关注

    1

    文章

    975

    浏览量

    30695
  • Docker
    +关注

    关注

    0

    文章

    537

    浏览量

    14401
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【米尔全志T153开发板评测】虚拟机资料下载与安装

    【前言】 米尔全志开发板在资料中提供了虚拟机的环境,这使得开发容易,这里讲一下,下载好虚拟机包报进行较验的经验。 【缘由】 在米尔开发者中心下载到Tools后,解压,在解压时提示头部有问题,因此需要
    发表于 03-10 12:29

    Docker容器网络模式全解析

    容器网络是Docker使用中最容易出问题的部分。容器之间怎么通信、容器怎么访问外网、外部怎么访问容器内的服务——这三个问题搞不清楚,排查网络
    的头像 发表于 02-26 16:39 472次阅读

    虚拟机数据恢复—虚拟机vmdk文件被删除的数据恢复案例

    本次数据恢复涉及一台R710系列服务器和一台MD3200系列存储,上层是ESXI5.5版本的虚拟机虚拟文件。因客户机房非正常断电,虚拟机无法启动。机房管理员检查发现虚拟机配置文件丢失
    的头像 发表于 02-10 17:05 499次阅读
    <b class='flag-5'>虚拟机</b>数据恢复—<b class='flag-5'>虚拟机</b>vmdk文件被删除的数据恢复案例

    虚拟机数据恢复—异常断电致ESXI存储失联?这份实战数据恢复案例请收好

    服务器存储数据恢复环境: 一台服务器上部署esxi虚拟化平台。上层采用通过FreeNAS构建的iSCSI方式FCSAN功能,FreeNAS层采用UFS2文件系统。 esxi虚拟化系统有3台虚拟机
    的头像 发表于 11-11 14:11 399次阅读

    蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因及解决措施

    内容:蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因 现象: 解决措施: 蜂鸟e203在虚拟机unbuntu上面验证时不要重复输入命令: make install make compile SIM=iverilog 只需输入一遍
    发表于 10-24 08:27

    搭建自己的ubuntu系统之创建ubuntu虚拟机

    打开VMware软件,点击创建新的虚拟机。进入以下界面:选择自定义,点击“下一步”。选择对应VMware版本的兼容性,版本可在帮助-&gt;关于VMware Workstation中
    发表于 09-25 09:39

    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—Docker容器部署方法说明

    本指导文档主要演示Docker容器部署的方法,并基于Docker运行led_flash例程。
    的头像 发表于 08-06 15:55 811次阅读
    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法说明

    Docker容器安全攻防实战案例

    在云原生时代,Docker已成为现代应用部署的基石。然而,容器化带来便利的同时,也引入了新的安全挑战。作为一名在生产环境中管理过数千个容器的运维工程师,我将通过真实的攻防实战案例,带你深入了解
    的头像 发表于 08-05 09:52 1568次阅读

    创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—Docker容器部署方法说明

    Docker是一个开源的应用容器引擎,让开发者可打包他们的应用以及依赖包至一个可移植的镜像中,然后发布至任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机
    的头像 发表于 07-03 11:00 661次阅读
    创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>部署方法说明

    干货分享 | RK3588 Ubuntu系统Docker容器使用指南

    Docker实战流程。1.Docker简介Docker本质是轻量级虚拟化技术,通过容器化机制打包应用及其依赖环境。与传统
    的头像 发表于 06-27 12:01 4194次阅读
    干货分享 | RK3588 Ubuntu系统<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>使用指南

    中软国际鸿云虚拟机安装指南

    鸿蒙电脑作为新一代分布式计算平台,凭借其卓越的多端协同能力和智能化特性,为高效办公提供了新选择。针对专业软件兼容性这一核心痛点,中软国际的鸿云虚拟机解决方案提供了务实的技术路径。作为专为鸿蒙生态打造
    的头像 发表于 06-23 16:31 5381次阅读

    迅为RK3588开发板挂载Windows以及虚拟机Ubuntu测试

    使用以下命令测试,如下图所示: 电脑端 IP 为 192.168.1.96 共享文件夹为 share-tian 虚拟机 Ubuntu 端 IP 为 192.168.1.6 共享文件夹为 samba
    发表于 06-19 10:32

    TECS OpenStack资源池虚拟机网络二层地址无法互通的问题处理

    某运营商TECS OpenStack使用主机overlay SDN方案组网,运维人员在创建虚拟机测试虚拟机网络状态时发现问题:在其中一台主机上创建两台同网段虚拟机虚拟机之间二层地址无
    的头像 发表于 06-12 09:28 1022次阅读
    TECS OpenStack资源池<b class='flag-5'>虚拟机</b>网络二层地址无法互通的问题处理

    Vsan数据恢复——Vsan分布式文件系统上虚拟机不可用的数据恢复

    一台采用VsSAN分布式文件系统的存储设备由于未知原因关机重启。管理员发现上层的虚拟机不可用,存储内的数据丢失。
    的头像 发表于 05-15 17:42 693次阅读
    Vsan数据恢复——Vsan分布式文件系统上<b class='flag-5'>虚拟机</b>不可用的数据恢复

    Docker Compose的常用命令

    大家好,今天给大家分享Docker Compose的常用命令,以及docker-compose文件的属性。Docker Compose 是一个用于定义和运行多容器
    的头像 发表于 04-30 13:40 1389次阅读