在虚拟机中运行容器?


15

据我了解,容器比VM轻巧得多,因为它们不会虚拟化硬件,而只是将它们中运行的软件与系统中其他容器中运行的软件隔离开来。

我的情况是我无力购买额外的服务器,而我拥有的服务器都在运行虚拟机监控程序。我需要至少提供6个“服务器”来托管相对较小的Web应用程序的实例(每个实例适用于不同的客户)。为这些服务器中的每一个提供一个新的VM会很浪费,因此我计划设置2个VM并执行以下操作之一:

  1. 使用虚拟主机(Apache)在每个VM上运行应用程序的多个实例。要么
  2. 在虚拟机上设置容器,这将使我隔离环境。

考虑到这一点,是否有与容器系统相关的不可忽略的开销,这使在VM内部使用它们成为一个坏主意,还是有其他技术原因导致我不想使用容器?

Answers:


13

与VM相比,Docker非常轻巧,VM系统应该可以很好地运行容器。每个容器实际上都可以作为一个隔离的系统运行,因此从系统稳定性的角度来看,对于隔离非常有用。根据您的描述,这听起来像是Docker的理想用例。如果您尝试使用Docker,请确保使用尽可能最新的版本,其中一些较旧的版本中就有一些相当讨厌的漏洞。运行Docker时有一些安全注意事项。

SELinux -SELinux支持容器,将自动为每个容器创建一个随机命名的MCS标签。这有助于确保隔离,因为LXC容器本身并没有真正“包含”,尽管这种情况正在改善。

USER指令 -在每个Dockerfile中,建议最佳实践是使用USER指令,并让用户以root以外的其他帐户(默认)运行。这里的要点是用户必须存在于系统上。对于这个新用户来说,它也可能使他们难以使用文件/目录,但这有助于降低风险。我通常建议您在系统上创建一个“ containeruser”或类似的内容,以帮助确保在不与系统任何其他部分重叠的所有系统上都可以使用一个公共用户。

否则,最困难的部分是管理容器并在必要时进行更新。


3

是否有与容器系统相关的不可忽略的开销,这使得在VM内部使用它们是一个坏主意

是否Docker容器的性能在VMware vSphere的帮助吗?

还是有其他技术原因导致我不想使用容器?

我一般不了解Docker,因为我还没有使用过它。我认为与VM管理软件相比,该管理软件仍不成熟...但是我是vSphere管理员,因此可能会有所偏见。

考虑到VM上的Docker,现在vSphere 5.5正式支持CoreOS。因此,至少VMware认为VM上的Docker /容器是可以的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.