自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手。本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异。

Linux容器vs虚拟机 - 应用程序与操作系统

首先要了解的有关容器和虚拟机的一个事情是,一个运用于应用程序,另一个是为操作系统设计的。这就是为什么您经常会看到一些企业应用程序运行在容器上而不是自己的虚拟机上。在虚拟机上使用容器有一些优点。

容器最大的优点之一是可以预留比虚拟机少的资源。请记住,容器本质上是单个应用程序,而虚拟机需要更多资源来运行整个操作系统。

如果您需要运行MySQL,NGINX或其他服务,使用容器是非常有必要。但是,如果您需要在自己的服务器上运行完整的LAMP堆栈,则运行虚拟机更好。虚拟机有着更好的灵活性,可以供您选择您的操作系统,并在您认为合适的情况下进行升级。相比之下,运行已配置应用程序容器在主机的操作系统升级方面是隔离的。

Linux容器vs虚拟机 - 用例场景

我最喜欢使用容器的原因之一就是使用Linux库版本。例如,假设您需要Python的特定版本来开发应用程序。然后,当你在运行应用程序的盒子上更新时,突然发现Python版本发生了变化,导致应用程序无法正常工作。

使用容器的另一个好处是你可以把一个应用程序放到一个容器中,然后在任何支持你正在运行的容器类型的操作系统上运行它。当你想要一个运行在不同Linux发行版应用程序时。通过使用容器,可以在各种不同的发行版上运行类似的应用程序环境。容器提供了可移植性。

容器对于快速的跨发行版部署是更可行的,而虚拟机对于像运行LAMP堆栈这样的单一应用程序使用情况是更好的。

Linux容器vs虚拟机 - 安全性

与容器相比,虚拟机提供了更多的安全性。这并不是说容器不能被保护,而是说,默认的虚拟机提供了更大的隔离。请记住,容器可以共享系统资源而虚拟机不行。

在运行容器时,可以采取一些措施来降低风险,包括避免超级用户权限,确保从可信来源获取容器,并且保持最新状态。有些容器是数字签名的,这有助于确定您可以从可信来源获取容器。

最后,你需要保持容器的单一功能职责。一旦你开始在一个容器下结合软件职责,你会发现还是使用虚拟机最好。重申一下,容器是用于单一用途的应用程序,虚拟机用于多用途的应用程序。坚持这种做法,你将在安全性和整体功能方面处于更好的状况。

Linux容器vs虚拟机 - 选择合适的工具

无论虚拟机或容器类型如何,选择适合您需求的关键都在于研究每个选项的能力。在容器领域,Docker提供了强大的企业解决方案。这就吸引了那些关注Docker容器的公司,因为公司知道如果出现任何问题,他们可以得到他们所需要的支持。Docker是企业用户友好的选择,特别是在Docker Swarms中。而将Docker Swarms 与 Kubernetes 相比,Kubernetes在高级环境中的设置要复杂得多。

回到虚拟机方面,我一直发现Virtualbox可以提供更好的面向桌面的虚拟机环境。而VMware在服务器方面做了各种各样的产品,VMware拥有从存储到云服务器解决方案的各种虚拟机解决方案,还有其他选择(各种管理程序等)。但我认为VirtualBox和VMware很好地代表了桌面到服务器虚拟化的两个领域。

Linux容器vs虚拟机 - 赢家是?

在决定容器还是虚拟机之前,请考虑以下事项。如果你选择容器,但你完全可以在虚拟机上运行容器。了解这一点很重要,因为这里没有明显的赢家或输家。事实上,这两种技术的需求完全不同。

容器将引起媒体的持续关注,因为它们让用户用更少的硬件更高效地运行。在另一方面,虚拟机仍然是服务器和云空间的主要内容。

我认为值得一看的是Kubernetes和Docker Swar之间的事情。我认为看看这两种容器管理技术是如何发挥作用的,以及哪种技术会成为标准。有一段时间,感觉好像是Docker。然而现在,Kubernetes占据了更多的营地。可能随着时间的推移,我们将开始看到Kubernetes成为头条新闻,并成为容器阵营的头号人物。

Linux 容器 vs 虚拟机——谁更胜一筹的更多相关文章

  1. Linux 容器 vs 虚拟机 —— 谁更胜一筹

    自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手.本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异. Linux容器vs虚拟机 – 应用程序与操作系统 ...

  2. Linux 容器的使用

    Linux 容器的使用 Linux 容器在 v2.6.29版本之后就加入到内核之中了, 之前虽然也听说过, 但一直没有太留心, 一直使用 KVM 来创建虚拟机. 直至最近 Docker 大出风头, 才 ...

  3. Linux 容器技术史话:从 chroot 到未来

    Linux 容器是一个在单一 Linux 主机上提供多个隔离的 Linux 环境的操作系统级虚拟技术.不像虚拟机(VM),容器并不需要运行专用的访客(guest)操作系统.容器们共享宿主机的(host ...

  4. Docker —— 用于统一开发和部署的轻量级 Linux 容器【转】

    转自:http://www.oschina.net/translate/docker-lightweight-linux-containers-consistent-development-and-d ...

  5. 通过 Linux 容器进行虚拟化

    简单介绍 Linux 容器是一种轻量级"虚拟化"方法,用于在单个控制主机上同一时候执行多个虚拟装置(容器).还有一个可用来描写叙述 Linux 容器所执行的操作的术语是" ...

  6. Docker,容器,虚拟机和红烧肉

    Docker火了,有多火你自己看看下面的统计数据就知道了 在发布4个月的时间里,下载量就超过50000次,github上收到超过4000个star,涌现了超过100个贡献者,并且有超过150个项目和超 ...

  7. IBM研究院找到度量安全性方法:容器与虚拟机,谁更安全?

    https://zhuanlan.zhihu.com/p/40446759 虚拟机比容器更安全吗?你可能会有自己的答案,但IBM研究院发现容器的安全性与虚拟机一样,甚至更加安全. 一般来说,从接口宽度 ...

  8. 【Docker】容器、虚拟机与Docker概念全解析

    导读 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.本文立足于新手,从容器和虚拟机两个大 ...

  9. 关于容器、虚拟机以及 Docker 的一个入门教程

    Yves yao · 2017-09-05翻译 · 1315阅读 原文链接 huangxiaolu审校   源地址:http://zcfy.cc/article/a-beginner-friendly ...

随机推荐

  1. 「题解」:Kill

    问题 A: Kill 时间限制: 1 Sec  内存限制: 256 MB 题面 题面谢绝公开. 题解 80%算法 赛时并没有想到正解,而是选择了另一种正确性较对的贪心验证. 对于每一个怪,我们定义它的 ...

  2. django简单实现短url

    一.短url的原理 什么是短url: 简单讲就是把普通正常访问的网址,转换成比较短的网址,例如:https://www.cnblogs.com/angelyan/articles/10667354.h ...

  3. NX二次开发-UFUN工程图表格注释获取某一行的tag函数UF_TABNOT_ask_nth_row

    NX9+VS2012 #include <uf.h> #include <uf_tabnot.h> #include <NXOpen/Part.hxx> #incl ...

  4. (转)简单的RPC java实现 .

    转:http://blog.csdn.net/jackliang55/article/details/7580563 我也承认,RPC的名声大噪之时是在2003年,那一个“冲击波”病毒(Blaster ...

  5. Java--下大雪模拟

    package firstpack; import java.awt.*; public class MyStar { public static void main(String[] args) { ...

  6. Openstack-L 路由注入方式

    目录 目录 前言 从 Commands 到 Action 操作函数 前言 Openstack 新旧版本提供了不同的路由注入方式,也就是 Route Module 的代码方式不同,就二次开发而言用那一种 ...

  7. JDK简介和mac下安装和查看版本命令

    1.什么是JDK? JDK:Java Development Kit,是 Java 语言的软件开发工具包(SDK).没有JDK的话,无法编译Java程序(指java源码.java文件). SE(Jav ...

  8. Delphi 2010 中的泛型

    Delphi 2010 中的泛型 2010已发布很长时间了,口碑还不错,准备用它开发下一项目,但对泛型等新东西的认识还不够,就搜了一下,发现下面这篇文章,还不错,大家一起补补课吧! C++中的模板.C ...

  9. 剑指offer——15剪绳子

    题目描述 给你一根长度为n的绳子,请把绳子剪成m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]xk[1]x...xk[m]可能 ...

  10. netty UnpooledHeapByteBuf 源码分析

    UnpooledHeapByteBuf 是基于堆内存进行内存分配的字节缓冲区,没有基于对象池技术实现,这意味着每次I/O的读写都会创建一个新的UnpooledHeapByteBuf,频繁进行大块内存的 ...