Как стать автором
Обновить

В изоляции. История появления и развития контейнеров

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров8.8K
Всего голосов 24: ↑24 и ↓0+24
Комментарии7

Комментарии 7

И Docker, и Kubernetes ведут свою родословную от виртуальных машин

Нууу... Нет. Есть принципиальная разница в том, что именно виртуализируется. В виртуальных машинах изображается железо (соот-но внутри поднимается полноценная операционка с ядром), в контейнерах изображается ядро (поэтому контейнерный софт - userspace-only). Вот jails да, это оно. chroot - тоже оно, но совсем на минималках.

Справедливости ради, чтобы придумать виртуализацию ядра, сначала нужно было придумать виртуализацию. И аппаратную абстракцию как минимум. Собственно, и эксперименты IBM, и работы над Unix в Bell Labs были направлены именно туда: разделить код и "железо", сделать ОС переносимой. Виртуализация ядра и окружения - это уже следующий этап эволюции. В общем, человек, конечно, произошел от обезьяны, но все млекопитающие когда-то все равно вылезли на сушу из океана :)

двух самых популярных систем контейнеризации: Docker и Kubernetes

Kubernetes это вроде про оркестрацию.

И Docker, и Kubernetes ведут свою родословную от виртуальных машин, которые, в свою очередь, зародились еще в 60-х.

Kubernetes не имеет никакого отношения к родословной виртуальных машин. Вообще. Ближе к управлялкам виртуальными машинами.
Говоря про виртуализацию, обычно понимаем гипервизоры с их абстрагированием аппаратной части. Docker тогда больше не про виртуализацию, а про изоляцию процесса в контейнере от остальных процессов в ОС с помощью механизмов ядра. В windows и MacOs как раз виртуализация вместо контейнеров, потому что их ядра не поддерживают эти механизмы.

Jail представляла собой систему виртуализации, позволявшую запускать внутри FreeBSD еще несколько экземпляров FreeBSD, которые использовали то же ядро, но собственное независимое окружение и набор приложений.

Представляла собой изоляцию процесса (песочницу) и внутри клетки не было нескольких экземпляров ОС, которые использовали то же ядро. По своей сути они мало чем отличались от нынешних контейнеров, но управлялись криво. И если бы разработчики не кинулись срочно делать свой гипервизор (виртуалку), может быть сейчас сидели на контейнерах от FreeBSD.

потому что их ядра не поддерживают эти механизмы.

Google: windows container process isolation.

Windows containers offer two distinct modes of runtime isolationprocess and Hyper-V isolation.

Hyper-V isolation - это совсем не про kernel features механизмы: cgroup, namespaces

Эх, вот, вроде, появились не так давно, а уже в разделе "Ретроспектива"

Зарегистрируйтесь на Хабре, чтобы оставить комментарий