在虚拟机内运行容器?

我的理解是,容器比虚拟机轻很多,因为它们不是虚拟化硬件,而是将运行在其中的软件与系统中其他容器中运行的软件隔离。

我的情况是,我无法购买额外的服务器,我所拥有的服务器都运行虚拟机pipe理程序。 我需要configuration至less6个“服务器”来托pipe相对较小Web应用程序的实例(每个实例都是针对不同的客户)。 为每个服务器configuration一个新的虚拟机是浪费的,所以我打算设置两个虚拟机并执行下列操作之一:

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

考虑到这一点,是否有一个不容忽视的与容器系统有关的开销,在虚拟机内部使用它们是不好的主意,还是有其他的技术原因,我不想使用容器?

与虚拟机相比,Docker是非常轻量级的,虚拟机系统应该运行良好的容器。 每个容器本质上都是作为一个独立的系统运行的,所以从系统稳定性的angular度来看,它是非常好的隔离。 根据你的描述,这听起来像是Docker的理想用例。 如果你尝试使用Docker,确保你使用最新的版本,一些较旧的版本有一些相当不好的漏洞。 运行Docker时有一些安全性考虑事项。

SELinux – SELinux是容器感知的,并且会自动为每个容器创build一个随机命名的MCS标签。 这有助于确保隔离,因为LXC容器本身并不被认为是真正的“包含”,虽然这正在改善。

USER指令 – 在每个Dockerfile中,build议使用USER指令的最佳实践是让用户以非root(默认值)的帐户运行。 这里捕捉的是用户必须存在于系统上。 这也可能会令这个新用户的chowning / chmodding文件和目录令人沮丧,但它有助于降低风险。 我通常build议您在系统上创build一个“containeruser”或类似的东西,以帮助确保所有不与系统其他任何部分重叠的系统上都有一个普通用户。

否则,最难的部分是pipe理容器,并在必要时更新它们。

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

VMware vSphere中的Docker容器性能对您有帮助吗?

还是有什么其他的技术原因,为什么我不想使用容器?

我一般都不知道Docker,因为我还没有用过它。 我认为与VMpipe理软件相比,pipe理软件仍然不够成熟……但是我是vSpherepipe理员,因此可能有偏见。

考虑到虚拟机上的Docker, CoreOS现在在vSphere 5.5上正式支持 。 所以至lessVMware认为虚拟机上的Docker /容器是可以的。