当前位置: 首页 > 知识库问答 >
问题:

什么时候应该使用Docker,什么时候应该使用虚拟机?[副本]

徐英锐
2023-03-14

关于什么时候使用Docker而不是VM的,有什么指导方针吗?(反之亦然)

在我看来,像NGINX、Apache或Redis这样的服务应该是docker,但我不确定是否应该在HPC环境中使用ElasticSearch docker。

Docker总是比VM好吗?

共有1个答案

羊舌旭尧
2023-03-14

第一,它是一个容器;docker是容器的一种实现,既不是第一种,也不是最后一种。

虚拟机(VM)是容器的超集,所以问题不在于更好,而在于深度--也就是说,您需要多大程度的隔离。在最微不足道的层面上,隔离就是远离困扰宇宙的疯狂;确定您需要什么,将其转储到一个容器中,瞧,再也没有兼容性问题了。在这个层面,容器主要是关于包装;而且让包装变魔术也不会出错。只要确保你的简历是最新的。

在更深的层次上,容器可以参与孤立的部署。这些工作起作用,但通常需要大量的管理软件:编排软件(k8s)、服务系统(istio:)、[A-Z]AAS。在这个荒野的某个地方,它们与虚拟机交叉,虚拟机预先打包了其他层中的许多概念,尽管使用了不同的管理平台。

在虚拟机的领域中,我们看到主机的客户内部有一个感知的连续体,它从类似于容器(即高度依赖)延伸到轻松无知(即经典虚拟机)。在这个舞台上的选择标准主要落在信任的领域--你越不信任客人,你就越想孤立它;或者客户越不信任宿主环境,它就越希望被隔离。

审查;在隔离领域中,容器和VM占据连续体中重叠的极端。容器是管理打包的最轻方式,但随着隔离需求的增加,VM变得越来越有吸引力。在VM连续体中,信任和性能之间存在权衡。沿途每一站都有一吨重的软件支持;但该软件尚未统一。

 类似资料:
  • 问题内容: 我知道他们两个都禁用了Nagle的算法。 我什么时候应该/不应该使用它们中的每一个? 问题答案: 首先,不是所有人都禁用Nagle的算法。 Nagle的算法用于减少有线中更多的小型网络数据包。该算法是:如果数据小于限制(通常是MSS),请等待直到收到先前发送的数据包的ACK,同时累积用户的数据。然后发送累积的数据。 这将对telnet等应用程序有所帮​​助。但是,在发送流数据时,等待A

  • 问题内容: 在该类中,有两个字符串,和。 有什么不同?我什么时候应该使用另一个? 问题答案: 如果你的意思是和则: 用于在文件路径列表中分隔各个文件路径。考虑在上的环境变量。您使用a分隔文件路径,因此在上将是;。 是或用于拆分到特定文件的路径。例如在上,或

  • 问题内容: 在集成我以前从未使用过的Django应用程序时,我发现了用于定义类中函数的两种不同方式。作者似乎非常有意地使用了它们。第一个是我自己经常使用的: 另一个是我不使用的,主要是因为我不知道何时使用它,以及什么用途: 在Python文档中,装饰器的解释如下: 类方法将类作为隐式第一个参数接收,就像实例方法接收实例一样。 所以我想指的是自己(而不是实例)。我不完全理解为什么会这样,因为我总是可

  • 问题内容: 我看过各种文章,但我仍然不知道为什么不应该使用它。请让我知道您的想法。 问题答案: 我发现有必要在错误的设计中使用instanceof提示。可以肯定的是,将会出现一个大型,复杂的开关风格的构造。在我看到的其他大多数情况下,我们应该使用多态而不是instanceof。请参阅策略模式。(相关的使用示例) 我唯一需要使用的是实现时。

  • 问题内容: 我在阅读《 Swift编程语言》指南 时遇到了一个叫做的函数,但我仍然想知道为什么以及何时需要实现它,因为我们实际上不需要管理内存。 问题答案: 不需要实现该方法,但是如果需要在取消分配对象之前进行一些操作或清理,则可以使用它。 在苹果的文档包括例如: 因此,无论何时将玩家从游戏中移除,其硬币都会退还至银行。

  • 问题内容: 在Java中,有更好的解决方案。那我什么时候应该使用?这是多余的吗? 这两者之间的多线程方面是否常见? 问题答案: 这两个类在某些方面有所不同。 ConcurrentHashMap不保证*其合同约定的运行时间。它还允许调整某些负载因子(大约是同时修改它的线程数)。 另一方面,ConcurrentSkipListMap可确保各种操作的平均O(log(n))性能。它也不支持为了并发而进行调