2015-09-29 9 views
1

Я начинаю понимать докер, и насколько мне известно, контейнер докеров запускается на уровне defualt linux dist, где установлен контейнер, - в моем случае его малый размер os x lightweights поставляется с набором инструментов докеров.Docker: зачем устанавливать Linux-контейнер внутри контейнера?

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

Например, вот один докер файл, начиная с ...

FROM debian:jessie 

так это установка Docker изображение внутри контейнера, который базируется на Debian.

Я также вижу многие другие usign убунту, например

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

Заранее спасибо за любые разъяснения

+0

Другой пример: http://phusion.github.io/baseimage-docker/ – Martin

+0

Если ваше программное обеспечение состоит из статического двоичного кода без внешних зависимостей, идите прямо вперед! (Я действительно делаю это на практике, по крайней мере, в одном случае, однако это редкий сценарий). –

ответ

1

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

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

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

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

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

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