2. 2
Контейнеры и виртуализация
● Разные концепции
● Виртуализация – вертикальное абстрагирование
● Контейнеры – горизонтальное разбиение
● Контейнеры используются для замены виртуализации там, где они справляются
лучше:
● Горизонтальная изоляция приложений
● Делегирование окружений
● “Виртуализация приложений”
● Максимальная плотность
● Зачастую контейнеры используются поверх виртуализации
5. 5
Control Groups (CGroups)
● В RHEL 7 десять групп
● Основные группы:
● cpu
● memory
● blkio
● systemctl
● net-prio
● cgconfig (устарела) libcgroup будет удалена
6. 6
SELinux – реализация MAC для Linux
● Интегрирована в ядро
● LSM и расширенные атрибуты
● Для чего использовать:
● Запуск программ с минимальными привилегиями
● Защита от эксплоитов
● Защита пользовательских данных
● Для чего не предназначена:
● Аудит кода
● Шифрование
● Обновления
7. 7
Docker – изменяет правила игры
● Docker CLI интересен, но это не столь значительное
нововведение. Технологии, позволяющие создавать
контейнеры у нас были с RHEL 5
● Docker как формат упаковки и распространения приложений
– вот что важно!
8. 8
Docker - понятия
● Контейнер – запущенное из образа приложение
● Образ – статический снимок конфигурации контейнера.
Образы могут зависить от других образов. Образ всегда r/o.
Изменения сохраняются только созданием образа поверх
образа.
● Образ платформы – не имеющий родительских образов.
Содержит базовые библиотеки и утилиты для запуска
приложений. Мы поставляем образы RHEL 6 и 7.
9. 9
Docker – упаковка приложений
● API и формат образов:
● Перемещаемость контейнеров между хостами
● Контроль версий и переиспользование компонентов
● Удаленный репозиторий для образов
● Dockerfile – шаблон конфигурации для сборки образов
10. 10
Контейнеры в RHEL 7 Вариант 1: Host Containers
Host Containers
Идентичные
контейнеры
Host
RHEL
● В RHEL 7 хост делится на
защищенные контейнеры
● В каждом контейнере
запускается код RHEL 7
пространства пользователя
● За : Обновления применяются
просто запуском “yum update”
● Против : Ограничено только
средой исполнения RHEL 7
11. 11
Контейнеры в RHEL 7 Вариант 2:
Image-based Containers
Image-based
Containers
Разные контейнеры
RHEL 6
RHEL 7
RHSCL
Fedora
Формат Docker
● Docker предоставляет формат
образов для распространения
программного обеспечения.
● Пакеты самого приложения и
все зависимости для внедрения
приложения в контейнерах
● Docker включает в себя среду
исполнения для приложений
12. 12
Что мы поддерживаем в Docker?
● RHEL 6 x86_64
● RHEL 7 x86_64
● Не в mission-critical производственных средах
● Если все-таки mission-critical, то откройте заявку в поддержке
● Какие приложения? “...Single process user-space applications
that run on Red Hat Enterprise Linux 7 should be able to run
inside docker formatted Linux container using a RHEL 7
platform image...”
● https://access.redhat.com/solutions/907283
● Какая версия Docker?
● На сегодня (28 октября 2014) - docker-1.1.2-13.el7.x86_64
17. 17
Что дальше?
● Get Started with Docker Containers in RHEL 7
● https://access.redhat.com/articles/881893
● Project Atomic
● http://www.projectatomic.io/
● Документация Red Hat
● http://docs.redhat.com/