Interested Article - Контейнеризация
- 2021-05-14
- 2
Контейнеризация ( виртуализация на уровне операционной системы , контейнерная виртуализация , зонная виртуализация ) — метод виртуализации , при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо одного. Эти экземпляры (обычно называемые контейнерами или зонами ) с точки зрения выполняемых в них процессов идентичны отдельному экземпляру операционной системы. Для систем на базе 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 | Да | Да | Нет | Да | Да | Да | Нет |
Linux | GNU GPL | - | Да | Да | Нет | Да | Да | Да | Нет | |
iCore Virtual Accounts | Windows XP | Проприетарное | 06/2008 | Да | Да | Нет | Нет | Нет | Да | Нет |
|
Linux | GNU GPL v.2 | - | Да | Да | Да | Да | Да | Да | Нет |
LXC
|
Linux | GNU GPL v.2 | 2008 | Да | Нет | Да | Да | Да | Да | Нет |
OpenVZ | Linux | GNU GPL v.2 | 2005 | Да | Да | Да | Да | Да | Да | Да |
Virtuozzo Containers | Linux , Microsoft Windows | Проприетарное | - | Да | Да | Да | Да | Да | Да | Да |
FreeBSD Jail | FreeBSD | BSD | 03/2000 | Да | Да | Нет | Да | Частично | Да | Нет |
OpenBSD , NetBSD | BSD | - | Да | Нет | Нет | Нет | Нет | Да | Нет | |
AIX | Проприетарное | 10/2007 | Да | Да | Да | Да | Да | Да | Да |
Примечания
- В Solaris
- Контейнеры Solaris 10 имеют изолированную сеть, когда конкретный NIC приписывается контейнеру («exclusive IP»). Сеть не изолирована, но виртуализирована, то есть каждая виртуальная среда имеет свой IP-адрес, брандмауэр и так далее. Изоляция сети должна достигаться на аппаратном уровне. В OpenSolaris изоляция сети реализована, см. OpenSolaris Network Virtualization and Resource Control и . Дата обращения: 1 июня 2010. Архивировано из 1 июня 2008 года. .
- Реализована холодная миграция.
- Сеть изолирована.
- Доступна в ядре 2.6.18-028stable021.
- ↑ Сеть не изолирована, а виртуализована, то есть каждая виртуальная среда имеет свой IP-адрес, файрвол и так далее. Изоляция сети не поддерживается и должна быть реализована на аппаратном уровне.
- С версии 4.0, январь 2008.
- С версии TL 02. См. от 1 марта 2012 на Wayback Machine .
- См. от 8 июля 2017 на Wayback Machine
Ссылки
- , PC Magazine 11.05.2009 (недоступная ссылка с 02-09-2018 [1961 день])
- . Андрей Колесов, BYTE, 16.06.2009
- Андрей Колесов. // PC Week/RE. — 2008. — № 10 (616) .
- (англ.)
- 2021-05-14
- 2