В большинстве руководств, публикаций и даже в некоторых сообщениях блога Docker контейнерный движок изображается как целый слой, который находится поверх ОС. Он также считается гипервизором или уровнем, выполняющим виртуализацию, и его даже иногда называют облегченной виртуализацией или виртуализацией на уровне ОС.
Но правда в том, что приложения работают непосредственно в ОС, и все они используют одно и то же ядро. Движок контейнера не интерпретирует и не транслирует какой-либо код для работы в базовой ОС.
Я также прочитал Чем Docker отличается от виртуальной машины но это в основном о разнице между виртуальными машинами и контейнерами, но мой вопрос конкретно о контейнерных движках.
Правильно ли изображать контейнерный движок как целый слой между ОС и приложениями (рис. 1) или его следует рассматривать просто как процесс, работающий рядом с другими приложениями поверх ОС (рис. 2)?