Я вижу, что многие образы докеров в хранилище докеров создаются на основе Ubuntu.
Что это обозначает? Каждый контейнер связывает урезанную версию ядра Linux?
Контейнеры сидят поверх своих собственных ядер? Но я думал, что контейнеры разделяют ядро хоста (в некоторых случаях это boot2docker, пользовательская сборка Tiny Core Linux, а в других что-то вроде CoreOS).
РЕДАКТИРОВАТЬ: Уточнение вопроса немного. Да, я знаю, что Docker - это контейнер процессов, а не полная виртуальная машина. Но поскольку в официальном реестре узлов докеров и других операционных систем, таких как CentOS, есть контейнеры «Ubuntu», что означает запуск Ubuntu в контейнере?
Ответ: Ааа, меня осенило. Это пользовательские процессы Ubuntu, содержащие apt-get и другие процессы конфигурации для конкретной сборки Ubuntu. Аналогично для CentOS. Docker - это не отдельный процесс, а одна запись. Таким образом, для этих распределений точка входа является своего рода процессом инициализации, который порождает другие процессы.
Ответы:
Docker использует ядро операционной системы, в контейнере нет собственного или дополнительного ядра. Все контейнеры, которые запускаются на машине, совместно используют это «главное» ядро.
Википедия говорит, что http://en.wikipedia.org/wiki/Docker_(software) что
cgroups, пространства имен и LXC - это функции ядра Linux для изоляции групп процессов; есть еще одно ядро, один планировщик и один экземпляр менеджера памяти ядра.
Boot2docker и CoreOS - это просто облегченные дистрибутивы Linux с некоторым ядром хоста; их можно использовать для загрузки контейнеров Docker.
http://boot2docker.io/
http://en.wikipedia.org/wiki/CoreOS
источник
FROM
базовый образ Ubuntu, когда на хосте уже установлена Ubuntu. Чтобы ответить на вопрос, вы должны объяснить, что такое базовое изображение.Практически во всех случаях ядро ОС является общим. Для запуска другого ядра вам нужно использовать виртуализацию. Это редко и используется только при необходимости из-за снижения производительности.
«Контейнер Docker Engine включает в себя только приложение и его зависимости. Он работает как изолированный процесс в пространстве пользователя в операционной системе хоста, разделяя ядро с другими контейнерами. Таким образом, он обладает преимуществами выделения ресурсов и распределения виртуальных машин, но гораздо более портативный и эффективный. "
Это может помочь объяснить, как это работает:
Источник: https://www.docker.com/whatisdocker/
источник