Что уменьшают слои Docker? - PullRequest
0 голосов
/ 26 апреля 2019

Изображения Docker создаются из базового изображения через слои, и при экспорте каждый слой сбрасывается в окончательный архив.

Теоретически (и для локальной среды разработки это правда) это может сэкономить место на диске.

Слоистость улучшает время вращения контейнера? Я могу себе представить, что вы не можете распаковать 1-2 ГБ современных образов "mikro-service", если они совместно используют базовый образ, а один уже запущен.

Сохраняет ли многоуровневая память ОЗУ в любом случае?

Я думаю, что расслоение Docker является маркетинговой ерундой. Я не могу себе представить, чтобы диспетчер контейнеров в реальном поставщике Big Cloud заботился о том, чтобы вращать контейнер на физическом хосте с тем же базовым образом, что и у уже работающего контейнера.

Только недавно Google выпустил предложение 96 vCPU. Я не знаю обычных конфигураций vCPU, но могу представить, что крупные игроки запрашивают 4-8-16 vCPU, и это половина / четверть всех доступных ресурсов ЦП на хост. Менеджеры контейнеров (такие как Kubernates / Mesos) действительно учитывают не только доступные ресурсы, но и уже используемые базовые образы?

1 Ответ

1 голос
/ 26 апреля 2019

Я думаю, что вы перепутали со слоями изображений докера.

Прежде всего, они не архивируются и не упаковываются (только при экспорте в архив).Экономия места не является основным назначением слоев докеров.

Но все же, так и будет.Например, если вы хотите запустить 4 контейнера MySQL, Docker не будет создавать копии файлов для запуска MySQL 4 раза.Другим преимуществом может быть возможность многократного использования.

Например, если у вас есть два изображения и оба используют ubuntu:latest изображение, даже если вы увидите, что размер вашего изображения, скажем, 500 и 600 МБ.Поскольку размер изображения в Ubuntu составляет около 250 МБ, ваш фактический размер изображения составляет около 250 МБ и 450 МБ соответственно.

Это помогает, когда вы обновляете образ и пытаетесь развернуть его в облаке.Докер не будет выдвигать все изображение, если слои уже находятся на пульте.Это только подтолкнет измененные слои, которые он находит в вашем последнем изображении.

Во-вторых, многослойность не экономит ОЗУ.Это полностью зависит от приложения.Слои - это просто файловая система.Это обеспечивает необходимые файлы для запуска вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...