Почему мы используем Базовый образ ОС с помощью Docker, если в контейнерах нет гостевой ОС?

Поскольку все дистрибутивы Linux работают под управлением одного и того же (да, это немного упрощено) ядра Linux и отличаются только пользовательским программным обеспечением, довольно легко имитировать другую среду распространения - просто установив это пользовательское программное обеспечение и представив, что это другой дистрибутив. В частности, установка контейнера CentOS внутри ОС Ubuntu будет означать, что вы получите пользовательскую область из CentOS, при этом все еще будет работать то же ядро, даже не другой экземпляр ядра.

Так легкий виртуализация подобна наличию изолированных отсеков внутри одной и той же операционной системы. Напротив, реальная виртуализация - это наличие другой полноценной ОС внутри хост-ОС. Вот почему docker не может запускать FreeBSD или Windows внутри Linux.

Если это было бы проще, вы можете подумать, что docker - это своего рода очень сложная и продвинутая среда chroot.