2

Согласно моему пониманию операционных систем, ядро ОС - это то, что определяет его идентичность как ОС. Но Docker-контейнер не имеет собственного ядра. Используется ядро с хост-ОС.

Итак, мой вопрос: когда я говорю, что я работаю с контейнером Debian, что именно делает его Debian, кроме используемого репозитория? Или предположим, у меня есть два контейнера. Одним из них является Debian, а другим, скажем, Ubuntu. Теперь, что именно отличает их, кроме репо?

2 ответа2

1

Дистрибутив Linux не является его ядром. Требуется ядро, но дистрибутив работает на ядре.

Распространение - это просто особый способ распространения всех пакетов, необходимых для создания работающей системы.

Как правило, это включает в себя диспетчер пакетов и конкретные места, из которых извлекаются пакеты.

Поскольку существует много способов собрать работающую систему, каждый дистрибутив делает выбор необходимых базовых пакетов. Один дистрибутив может использовать basePackage v1.1 а другой - packageBase v7.8 . Может случиться так, что эти два пакета в целом предоставляют одинаковую функциональность, но работают немного по-разному, а это означает, что другим частям системы требуются настройки или конфигурация для работы с ними.

Там также могут быть тонкие различия в файлах конфигурации или макетах файловой системы.

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

Теоретически вы можете скомпилировать полностью универсальное ядро с каждым включенным модулем и затем поместить его в любой дистрибутив. Пока ядро обеспечивает правильные функции, требуемые пакетами, оно должно работать. На практике это намного сложнее, поскольку системные пакеты требуют определенных функций ядра и могут не работать, если они изменены, что часто случается с ядром Linux, но теория есть.

То, что делает Docker-контейнер одним распределением над другим, одинаково. Это то, как распределение внутри него связано и настроено.

0

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

они разделяют ядро хоста, поэтому контейнерная ОС является скорее утилитарным / упаковочным фактором (apt / yum), чем чем-либо еще.

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

rkt к примеру может запустить это как стадию 1 и дать больше VM как изоляцию

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .