Зачем устанавливать дистрибутив Linux внутри контейнера Docker?

Я начинаю понимать Docker и, насколько мне известно, контейнер Docker работает в дистрибутиве Linux по умолчанию, в котором установлен контейнер - в моем случае это облегченный дистрибутив Mac OS X, который поставляется с Docker Toolbox.

Итак, почему я вижу много файлов Docker, фактически устанавливающих дистрибутив внутри контейнера, разве это не побеждает цель сохранения света?

Например, вот один файл Docker, начинающийся с:

    FROM debian:jessie

так что это установка образа Docker внутри контейнера, основанного на Debian.

Я также вижу, что многие другие используют Ubuntu, например.

Можно ли обойти этот шаг, и программное обеспечение, установленное непосредственно в контейнере, использует подчеркивающий дистрибутив Linux, в котором установлен контейнер?

1 ответ

Решение

Потому что, как и для физических или виртуальных машин, настройка среды пользователя будет проблемой без распределения.

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

Контейнерное приложение, вероятно, будет иметь зависимости. Чтобы установить эти зависимости, очень помогает иметь менеджер пакетов. Некоторые зависимости также включены по умолчанию во многие дистрибутивы, что позволяет создателю контейнера (приложению) выбрать свой собственный дистрибутив.

Кроме того, помните, что упаковка всего дистрибутива не обязательно тратит много ресурсов:

  • Изображения Docker хранятся в виде дельт относительно общей базовой линии, что означает, что два изображения основаны на debian:jessie может повторно использовать те же данные для базовой линии.
  • Распределения на самом деле не так велики, так как обычно это минимизированные версии полных образов системы.

Если вы действительно хотите создать минимальное изображение, попробуйте busybox, Тем не менее, вы часто обнаружите, что перерастаете его довольно быстро для любого реального изображения контейнера.

Другие вопросы по тегам