首页 > 解决方案 > 既然 docker 容器是独立运行的,那么基于同一个镜像的多个容器的代码段是否会在内存中重复呢?

问题描述

假设我有一个简单的程序(C 或任何其他语言)。如果我在 Linux 服务器上运行程序的多个实例,我的理解是 Linux 足够聪明,可以为所有实例使用内存中的相同代码段(比如 1MB)。对于正在运行的程序的每个实例,与数据(堆、堆栈等)相关的内存将是分开的。

如果我根据上面的程序创建一个docker镜像并基于这个docker镜像启动多个容器,那么由于容器是独立运行的,linux内核不会为每个容器中的代码段分配内存吗?因此,如果我基于上述程序启动 10 个容器,将创建 10 个代码段,每个代码段大小为 1MB。与不使用 docker 直接在服务器上运行 10 个程序实例相比,这不会导致内存开销吗?

标签: dockermultiple-instances

解决方案


推荐阅读