跨多个docker集装箱共享操作系统映像资源

假设我有一个需要数据库映像,应用程序服务器映像和负载平衡器映像的n层应用程序。 假设他们都是Ubuntu镜像。 该build议似乎是使用3个不同的图像,并运行3个不同的容器。 在那种情况下,这两个呢..

1,因为每个图像都有Ubuntu库等等,他们都将在我的磁盘上安装相同的Ubuntu的东西3次,要求我分配这么多的磁盘空间?

2.类似于运行时,这些容器是以某种有效的方式使用Ubuntu的东西,或者它们全部独立地加载到内存中(再次重复3次)

如果所有三个Docker映像使用相同的Ubuntu基本映像,则不会发生重复。 我build议你阅读核心Docker体系结构来欣赏这一点。 如果可能的话,可以考虑使用一个轻量级的基础镜像,比如Alpine或者BusyBox,而不是像Ubuntu这样的成熟胖子。

最重要的方面(尤其是来自强大的虚拟机背景)是将Docker镜像视为应用程序级别的依赖关系pipe理工具。 是的,他们提供隔离。 是的,你可以节约资源消耗。 但首先,他们是(相当短暂的)应用程序包和执行环境。