在CoreOS的Docker容器内部运行多个ubuntu(或其他发行版),这是否有效?

从我读过的内容来看,我相信CoreOS是一个简单的Linux发行版,它基本上便于运行包含任何您需要的应​​用程序或服务的Docker容器

从CoreOS文档中我收集到的意图是,您将大部分服务分离到不同的Docker容器中,以便您可以水平扩展,从而允许群集在多个节点上pipe理容器。

当我想要运行一个需要一个特定的Linux用户空间的服务的时候(例如在Ubuntu或者Fendora上运行的apache或者其他的东西),我感到有些困惑。 举例来说,我有一个Ubunutu和Apache运行的容器,我想另一个容器运行一个Samba实例(也在Ubunutu上),我没有有效地运行两个Ubuntu的副本,所有的开销运行这些操作系统?

我认为我很可能误解了容器的工作原理 – 如果我在一个容器中运行Ubuntu,那么我大概是在共享CoreOS内核,只有操作系统的“userland”部分是“运行”的?

那么可能会有问题,运行内核是运行操作系统的昂贵部分? 所以当你运行虚拟机的时候,你不仅需要模拟硬件,而且要运行多个内核,从而失去了大量的资源。

是的,你正在运行多个用户域,但是只有一个内核,这意味着内核具有所有内存pipe理的全部视图,并且可以基于它们的CPU份额等在运行的容器之间最有效地分割它。 ,容器只是需要访问硬件的另一个过程。 每个容器过程恰好使用了一个特定的用户界面,这个用户界面只是一个名字空间的文件夹。