Я занимаюсь исследованием Docker, и оно в основном сфокусировано на Docker и сокращении потребления памяти. К сожалению, я не могу найти никаких конкретных ответов на несколько моих вопросов:
- Docker использует слои изображений, чтобы иметь доступную только для чтения часть контейнера. Когда запускаются несколько контейнеров с одним и тем же изображением, я предполагаю, что изображение загружено в память и все контейнеры считываются из одной и той же памяти?
- Означает ли это также, что если в образе контейнера присутствуют какие-либо динамически связанные библиотеки? что все эти контейнеры читаются из одной и той же области памяти?
- Итак, когда запускается команда docker run, механизм docker обернет изображение и добавит слой для записи сверху? Но что будет дальше? Как определяется использование памяти, полностью ли это процесс? А размер контейнера - это только то, что выдает Copy-on-Write?
Извините, если некоторые из этих вопросов не полностью согласованы или пропускают некоторые шаги, но мне трудно найти действительно подробные объяснения этих процессов. Если у кого-нибудь из вас есть ссылки на то, как совместное использование памяти работает со слоями контейнеров, это было бы замечательно!