14-07-2023
Контейнеризация (виртуализация на уровне операционной системы, контейнерная виртуализация, зонная виртуализация[1]) — метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо одного. Эти экземпляры (обычно называемые контейнерами или зонами) с точки зрения выполняемых в них процессов идентичны отдельному экземпляру операционной системы. Для систем на базе Unix эта технология похожа на улучшенную реализацию механизма chroot. Ядро обеспечивает полную изолированность контейнеров, поэтому программы из разных контейнеров не могут воздействовать друг на друга.
В отличие от аппаратной виртуализации, при которой эмулируется аппаратное окружение и может быть запущен широкий спектр гостевых операционных систем, в контейнере может быть запущен экземпляр операционной системы только с тем же ядром, что и у хостовой операционной системы (все контейнеры узла используют общее ядро). При этом при контейнеризации отсутствуют дополнительные ресурсные накладные расходы на эмуляцию виртуального оборудования и запуск полноценного экземпляра операционной системы, характерные при аппаратной виртуализации.
Существуют реализации, ориентированные на создание практически полноценных экземпляров операционных систем (Solaris Containers, контейнеры Virtuozzo, OpenVZ), так и варианты, фокусирующиеся на изоляции отдельных сервисов с минимальным операционным окружением (jail, Docker).
Механизм | Операционная система | Лицензия | Дата выпуска | Особенности | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Изоляция файловой системы | Квоты на пространство хранения | Лимиты на ввод-вывод | Лимиты на память | Квоты ЦПУ | Изоляция сети | Живая миграция | ||||
chroot | встроено в большинство Unix-подобных операционных систем | в зависимости от лицензии на операционную систему | 1982 | Частично | Нет | Нет | Нет | Нет | Нет | Нет |
Docker | Linux, FreeBSD, Windows, macOS | Apache 2.0 | 2013 | Да | Да | Да | Да | Да | Да | Нет |
Solaris Containers | Solaris, OpenSolaris | CDDL | 01/2005 | Да | Да | Нет | Да | Да | Да[2] | Нет[3] |
FreeVPS | Linux | GNU GPL | - | Да | Да | Нет | Да | Да | Да | Нет |
iCore Virtual Accounts | Windows XP | Проприетарное | 06/2008 | Да | Да | Нет | Нет | Нет | Да | Нет |
Linux-VServer |
Linux | GNU GPL v.2 | - | Да | Да | Да | Да | Да | Да[4] | Нет |
LXC |
Linux | GNU GPL v.2 | 2008 | Да | Нет | Да | Да | Да | Да | Нет |
OpenVZ | Linux | GNU GPL v.2 | 2005 | Да | Да | Да[5] | Да | Да | Да[6] | Да |
Virtuozzo Containers | Linux, Microsoft Windows | Проприетарное | - | Да | Да | Да[7] | Да | Да | Да[6] | Да |
FreeBSD Jail | FreeBSD | BSD | 03/2000 | Да | Да | Нет | Да | Частично | Да | Нет |
sysjail | OpenBSD, NetBSD | BSD | - | Да | Нет | Нет | Нет | Нет | Да | Нет |
WPAR | AIX | Проприетарное | 10/2007 | Да | Да | Да | Да | Да | Да[8] | Да[9] |
Информация в этой статье или некоторых её разделах устарела. |
Контейнеризация.