Поскольку контейнеры docker работают изолированно, дублируется ли сегмент кода в памяти для нескольких контейнеров на основе одного и того же изображения?

#docker #multiple-instances

Вопрос:

Допустим, у меня есть простая программа(C или любой другой язык). Если я запускаю несколько экземпляров программы на сервере Linux, я понимаю, что Linux достаточно умен, чтобы использовать один и тот же сегмент кода в памяти(скажем, 1 МБ) для всех экземпляров. Память, связанная с данными(куча, стек и т.д.), Будет отдельной для каждого экземпляра запущенной программы.

Если я создам образ docker на основе вышеупомянутой программы и запущу несколько контейнеров на основе этого образа docker, разве ядро Linux не выделит память для сегмента кода в каждом контейнере, поскольку контейнеры работают изолированно? Итак, если я запущу 10 контейнеров на основе приведенной выше программы, будет создано 10 сегментов кода, каждый размером 1 МБ. Не приведет ли это к увеличению объема памяти по сравнению с запуском 10 экземпляров программы непосредственно на сервере без использования docker?