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

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

3天内不再提示

容器的优势是什么?和虚拟机有什么不一样?

电子工程师 来源:网络整理 作者:工程师飞燕 2018-07-01 10:05 次阅读

容器被誉为是将应用程序部署到服务器上的非常有效的手段。容器(例如基于Docker开源标准的容器)比虚拟机消耗更少的资源,并且容器的设计更容易,且实例化和提供更快。

然而,与虚拟机不同,容器并不是100%与底层主机操作系统(通常是Linux或Window Server)或服务器上的驱动程序或其他应用程序隔离的。

虚拟机是一个完整的虚拟化服务器,通过被称为虚拟机管理程序的软件分配磁盘空间、处理器周期和I/O资源。在虚拟机中可以找到真实服务器上的所有内容:操作系统、设备驱动程序、应用程序、配置文件和网络连接。

换句话说,从底层起,是裸机、服务器的主机操作系统、管理程序,然后是一个或多个虚拟机,每个虚拟机都有自己的操作系统、驱动程序和应用程序。

相比之下,容器中的所有内容都共享底层主机操作系统、设备驱动程序和一些配置文件。例如Docker,它提供一个或多个容器,而不是管理程序。每个容器只保存应用程序。这些应用程序依赖于主机操作系统和驱动程序,它也与在同一台服务器上运行的其他容器共享。

容器的好处是:开销更小

如果在Linux服务器上有20台Linux虚拟机,则需要使用内存和CPU资源运行21个Linux实例,其中20个是虚拟机,另一个运行主机。启动所有这些Linux实例需要一定的时间,并且开销很大。

另一方面,所有这些Linux虚拟机都是相互隔离的,事实上,它们甚至可能是不同版本的Linux.在VM模型中,这完全没问题。

相反,如果在Linux服务器上有20个容器,则只需要一个Linux副本运行。启动一个容器非常快,并且消耗的资源要少得多,只有一个Linux内核和一组共享库。

但是,一个容器中的出现安全问题可能会泄漏并影响其他容器或其应用程序。

虚拟机的好处:更强的隔离

现代微处理器、主机操作系统(Linux和Windows)以及虚拟机管理程序(VMware ESX,Citrix XenServer和Microsoft Hyper-V)中的技术可在每个虚拟机之间提供基于硬件的隔离。这种保护是同心环:每个环都受到较高编号的环的保护,其中0环位于中心,与应用隔离。

在虚拟机系统中,主机操作系统的内核在0环中运行,这意味着什么都无法达到。管理程序在环1中运行。而单个虚拟机在环2中运行,因此无法访问环1内的管理程序或操作系统。

更重要的是,管理程序可以使用它的环1权限来执行规则,防止一个VM访问另一个VM的内存、应用程序或资源。

由于Docker Daemon不是环1管理程序,而是简单的环2应用程序,所以在容器中事物并不是同样安全的。因此,硬件中没有任何东西可以完全阻止一个容器对底层服务器进行更改,或者访问其他容器的内存、存储或设置。虽然有软件保护,但它们并非难以穿透。

如何保护容器

基于容器的服务器的安全性应视为适合“friends and family”:我们应该了解并信任在该服务器上运行的所有应用程序。

但是我们不需要知道或信任在服务器上运行的其他虚拟机上的应用程序,这就是为什么云托管公司使用虚拟机而不是容器来隔离客户的软件和数据的原因。

保护容器不易受到伤害,可以归结为以下几种常见方法。首先,最小化容器化软件的攻击面,以便在受到攻击时,将数据泄漏的危险性降到最小。

另一个是严格控制对容器的访问,并且如果有必要,需要在自己的服务器上隔离特别敏感的容器。

一定要研究使用的容器系统以及底层主机操作系统。例如,那些在Red Hat Linux上运行的容器应该查看公司的“十层容器安全”文档。其他必读内容是Docker的“容器安全入门”和Microsoft的“在Azure容器服务中确保Docker容器安全”。

容器是将应用程序部署到云中的最快、最有效的方式,并且比虚拟机的资源效率更高。目前的问题是容器不像虚拟机那样安全。但只要在使用容器的时候考虑到这一点,你将能够得到更好的体验。

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

    关注

    0

    文章

    481

    浏览量

    21878
  • 虚拟机
    +关注

    关注

    1

    文章

    855

    浏览量

    27377
收藏 人收藏

    评论

    相关推荐

    STM32的VDD与VDDA不一样可以吗?

    STM32 的VDD与VDDA不一样可以么
    发表于 04-11 06:34

    这图是怎么回事,和案例的颜色不一样

    大哥们,这图是怎么回事,和案例的颜色不一样,拜求各位了
    发表于 07-18 10:15

    2003和245什么不一样的地方

    2003和245什么不一样的地方啊啊 啊???
    发表于 10-11 23:11

    为什么测量值和实际不一样

    交流电流实际值和测量值不一样?如图:
    发表于 12-10 23:10

    线损校准,为啥不一样

    线损校准,为啥不一样,今天测试时发现,校准是,信号源频率不一样,线损差别很大,1dB 多!!!
    发表于 06-05 13:58

    PCB 的敷铜 颜色怎么不一样??

    `救命啊 为什么 同层面PCB 的敷铜 颜色和 走线的颜色不一样`
    发表于 02-17 17:09

    数据类型不一样和接口 怎么解决

    要怎么解决接口和产生的数据类型不一样的问题,然后利用MYRIO的模拟输出通道接到示波器里面为什么没有波形啊,数据类型应该是不一样,要怎么解决这个问题呢?
    发表于 05-09 01:00

    请问F2806X的芯片和F2806的哪些不一样

    请教F2806X的芯片和F2806的哪些不一样?我的理解是只有ADC不一样,其他的SPI、SCI、ePWM、eCAN、eQEP等都一样的;
    发表于 12-21 11:18

    一样的c文件但keil的输出文件不一样

    一模一样的啊,还有都能编译通过和下载,不知道这是什么原因,还有就是我对比发现这两个工程的输出文件的差别,是不是keil没有设置好导致输出文件不一样,进而导致程序运行结果不一样啊,求
    发表于 03-07 08:26

    程序编辑器结果不一样

    个程序段int i=1;int j=0;j=((i++)*(i++));printf(“%d,%d\n”,i,j);在不同的编辑器结果为什么不一样 我用虚拟机的VI编辑结果i=3;j=1;用C++编辑结果i=3;j=2;到底结
    发表于 03-13 02:22

    为什么我的泪滴不一样

    我的泪滴怎么和网上的不一样??
    发表于 03-13 15:23

    为什么uboot的ip和系统ip不一样

    按照视频里的介绍,设置好uboot的ipaddr和serverip,可以跟PCPING通。但进入系统之后,输入ifconfig之后,显示inet addr的区段跟我不一样,不能跟PCPING通,这是为什么?是不是里面的IP被
    发表于 08-02 05:45

    为什么c语言中a和b的值不一样,c和d的值不一样

    ];a = sizeof(table1);b = sizeof((u8)table1);c = sizeof(table2);d = sizeof((u32)table2);为什么a和b的值不一样啊???为什么c和d的值不一样啊???
    发表于 09-29 08:50

    为什么开发板进入系统与uoot下的ip不一样

    不一样。。。什么意思?(2)其次我的电脑和虚拟器可以相互ping通。我的连接方式是电脑(wlan)和开发板(lan)的都是通过网线连接路由器上。开发板在uboot下可以ping通电脑和虚拟机 但是电脑和
    发表于 10-14 05:45

    SWD和传统的调试方式什么不一样

    SWD 仿真模式概念简述先所说 SWD 和传统的调试方式什么不一样:首先给大家介绍下经验之谈:(): SWD 模式比 JTAG 在高速模式下面更加可靠. 在大数据量的情况下面 JTAG 下载 程序会失败, 但是 SWD 发生
    发表于 02-23 06:38