ݺߣ

ݺߣShare a Scribd company logo
1
Андрей Маркелов
amarkelov@inventa.ru
Введение в Docker
23.04.2015
2
Контейнеры и виртуализация
● Разные концепции
● Виртуализация – вертикальное абстрагирование
● Контейнеры – горизонтальное разбиение
● Контейнеры используются для замены виртуализации там, где они справляются
лучше:
● Горизонтальная изоляция приложений
● Делегирование окружений
● “Виртуализация приложений”
● Максимальная плотность
● Зачастую контейнеры используются поверх виртуализации
3
Контейнеры в GNU/Linux
4
Namespaces (пространства имен)
● Mount namespaces
● mount(), umount()
● UTS namespaces
● uname()
● IPC namespaces
● System V IPC objects, POSIX message queues
● PID namespaces
● /proc, PID
● Network namespaces
● NICs, firewall, routing table
5
Control Groups (CGroups)
● Десять групп
● Основные группы:
● cpu
● memory
● blkio
● systemctl
● net-prio
● cgconfig (устарела) libcgroup будет удалена
6
SELinux – реализация MAC для GNU/Linux
● Интегрирована в ядро
● LSM и расширенные атрибуты
● Для чего использовать:
● Запуск программ с минимальными привилегиями
● Защита от эксплоитов
● Защита пользовательских данных
● Для чего не предназначена:
● Аудит кода
● Шифрование
● Обновления
7
Docker – изменяет правила игры
● Docker CLI интересен, но это не столь значительное
нововведение. Технологии, позволяющие создавать
контейнеры в GNU/Linux > 10 лет
● Docker как формат упаковки и распространения приложений
– вот что важно!
8
Docker - понятия
● Контейнер – запущенное из образа приложение
● Образ – статический снимок конфигурации контейнера.
Образы могут зависить от других образов. Образ всегда r/o.
Изменения сохраняются только созданием образа поверх
образа.
● Образ платформы – не имеющий родительских образов.
Содержит базовые библиотеки и утилиты для запуска
приложений.
9
Docker – упаковка приложений
● API и формат образов:
● Перемещаемость контейнеров между хостами
● Контроль версий и переиспользование компонентов
● Удаленный репозиторий для образов
● Dockerfile – шаблон конфигурации для сборки образов
10
Контейнеры в Linux Вариант 1: Host Containers
Host Containers
Идентичные
контейнеры
Host
Linux
● В Linux хост делится на
защищенные контейнеры
● В каждом контейнере
запускается один код
пространства пользователя
● За : Обновления применяются
просто
● Против : Ограничено только
Одной средой исполнения
11
Контейнеры в Linux Вариант 2:
Image-based Containers
Image-based
Containers
Разные контейнеры
Формат Docker
● Docker предоставляет формат
образов для распространения
программного обеспечения.
● Пакеты самого приложения и
все зависимости для внедрения
приложения в контейнерах
● Docker включает в себя среду
исполнения для приложений
12
Возможные ограничения Docker
● Возможно не достаточно зрело для mission-
critical
● Возможно не достаточно безопасно
● Достаточно быстро меняется
● Приложение – один процесс
13
Примеры реализаций
● Операционная система
● Linux общего назначения
● CoreOS
● Atomic
● VMware Photon
● Управление
● Cockpit
● Kubernetes
● IaaS – что угодно (OpenStack, AWS.. Google.)
14
Примеры использования
● Основа PaaS
● Основа DevOps
15
Спасибо за внимание!

More Related Content

What's hot (20)

OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
Andrey Markelov
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
GetDev.NET
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
Andrey Markelov
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Badoo Development
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerТестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
Anton Maksimov
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
OSLL
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanes
Pavel Emelyanov
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
OSLL
Docker с чем едят и для чего используют
Docker с чем едят и для чего используютDocker с чем едят и для чего используют
Docker с чем едят и для чего используют
ITCrowd Almaty
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
Как не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с DockerКак не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с Docker
trukhinyuri
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
Александр Сигачев
Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
Ivan Grishaev
[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"
[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"
[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"
Provectus
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на Docker
Михаил Бакулин
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
OpenVZ
Docker for developers
Docker for developersDocker for developers
Docker for developers
Sergey Melekhin
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
Andrey Markelov
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
GetDev.NET
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
Andrey Markelov
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Badoo Development
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerТестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
Anton Maksimov
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
OSLL
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanes
Pavel Emelyanov
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
OSLL
Docker с чем едят и для чего используют
Docker с чем едят и для чего используютDocker с чем едят и для чего используют
Docker с чем едят и для чего используют
ITCrowd Almaty
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
Andrey Kazarinov
Как не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с DockerКак не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с Docker
trukhinyuri
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
Александр Сигачев
[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"
[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"
[Demo-day] Slava Mogilevsky: "Cluster CI on Jenkins"
Provectus
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
OpenVZ

Viewers also liked (18)

Openstack birhtday 2016 Ericsson OPNFV (Russian)
Openstack birhtday 2016 Ericsson OPNFV (Russian)Openstack birhtday 2016 Ericsson OPNFV (Russian)
Openstack birhtday 2016 Ericsson OPNFV (Russian)
Andrey Markelov
Red Hat Enterprise Virtualization. Технический обзор
Red Hat Enterprise Virtualization. Технический обзорRed Hat Enterprise Virtualization. Технический обзор
Red Hat Enterprise Virtualization. Технический обзор
Andrey Markelov
Настройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/выводаНастройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/вывода
Andrey Markelov
Что нового в управлении аутентификацией и авторизацией в RHEL 6.4
Что нового в управлении аутентификацией и авторизацией в RHEL 6.4Что нового в управлении аутентификацией и авторизацией в RHEL 6.4
Что нового в управлении аутентификацией и авторизацией в RHEL 6.4
Andrey Markelov
Средства обеспечения высокой доступности сервисов в RHEL
Средства обеспечения высокой доступности сервисов в RHELСредства обеспечения высокой доступности сервисов в RHEL
Средства обеспечения высокой доступности сервисов в RHEL
Andrey Markelov
Обзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdMОбзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdM
Andrey Markelov
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
Anton Turetsky
Docker в виртуальной среде VMware
Docker в виртуальной среде VMwareDocker в виртуальной среде VMware
Docker в виртуальной среде VMware
Andrey Konovalov
обзор Vagrant и docker
обзор Vagrant и dockerобзор Vagrant и docker
обзор Vagrant и docker
Andrey Bosonchenko
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризации
Alexander Kirillov
Ansible+docker (highload++2015)
Ansible+docker (highload++2015)Ansible+docker (highload++2015)
Ansible+docker (highload++2015)
Pavel Alexeev
Docker&Azure
Docker&AzureDocker&Azure
Docker&Azure
Oleg Chorny
Haker0515-myjurnal.ru
Haker0515-myjurnal.ruHaker0515-myjurnal.ru
Haker0515-myjurnal.ru
Vasya Pupkin
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
OSLL
Использование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1сИспользование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1с
Евгений Сосна
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
COMAQA.BY
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
Alex Chistyakov
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Ontico
Openstack birhtday 2016 Ericsson OPNFV (Russian)
Openstack birhtday 2016 Ericsson OPNFV (Russian)Openstack birhtday 2016 Ericsson OPNFV (Russian)
Openstack birhtday 2016 Ericsson OPNFV (Russian)
Andrey Markelov
Red Hat Enterprise Virtualization. Технический обзор
Red Hat Enterprise Virtualization. Технический обзорRed Hat Enterprise Virtualization. Технический обзор
Red Hat Enterprise Virtualization. Технический обзор
Andrey Markelov
Настройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/выводаНастройка производительности. Планировщик ввода/вывода
Настройка производительности. Планировщик ввода/вывода
Andrey Markelov
Что нового в управлении аутентификацией и авторизацией в RHEL 6.4
Что нового в управлении аутентификацией и авторизацией в RHEL 6.4Что нового в управлении аутентификацией и авторизацией в RHEL 6.4
Что нового в управлении аутентификацией и авторизацией в RHEL 6.4
Andrey Markelov
Средства обеспечения высокой доступности сервисов в RHEL
Средства обеспечения высокой доступности сервисов в RHELСредства обеспечения высокой доступности сервисов в RHEL
Средства обеспечения высокой доступности сервисов в RHEL
Andrey Markelov
Обзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdMОбзор Red Hat Directory Server и RHEL IdM
Обзор Red Hat Directory Server и RHEL IdM
Andrey Markelov
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
Anton Turetsky
Docker в виртуальной среде VMware
Docker в виртуальной среде VMwareDocker в виртуальной среде VMware
Docker в виртуальной среде VMware
Andrey Konovalov
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризации
Alexander Kirillov
Ansible+docker (highload++2015)
Ansible+docker (highload++2015)Ansible+docker (highload++2015)
Ansible+docker (highload++2015)
Pavel Alexeev
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
OSLL
Использование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1сИспользование Vagrant и docker при разработке в 1с
Использование Vagrant и docker при разработке в 1с
Евгений Сосна
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
COMAQA.BY
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
Alex Chistyakov
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Ontico

Similar to Введение в Docker (20)

OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
OpenStackRussia
obzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovobzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierov
Sergey Maximov
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в Virtuozzo
CEE-SEC(R)
Клуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps EveningКлуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps Evening
Artjoker
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
Nadzeya Pus
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
Vad Tymoshyk
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
dddpaul
Docker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. SwarmDocker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. Swarm
Dmitry Lazarenko
Dotnet
DotnetDotnet
Dotnet
MonsterXX
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
Anatoly Popov
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
Denis Latushkin
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
SpbDotNet Community
Virtuozzo platform
Virtuozzo platformVirtuozzo platform
Virtuozzo platform
ru_Parallels
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в Яндексе
Andrey Kazarinov
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
aviatakz
Использование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостингаИспользование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостинга
Yandex
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентация
Pavel Odintsov
использование .Net framework
использование .Net frameworkиспользование .Net framework
использование .Net framework
jskonst
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
OpenStackRussia
obzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovobzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierov
Sergey Maximov
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в Virtuozzo
CEE-SEC(R)
Клуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps EveningКлуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps Evening
Artjoker
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
Nadzeya Pus
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
Vad Tymoshyk
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
dddpaul
Docker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. SwarmDocker Containers orchestrators: Kubernetes vs. Swarm
Docker Containers orchestrators: Kubernetes vs. Swarm
Dmitry Lazarenko
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
Anatoly Popov
NPM и модульная архитектура приложения
NPM и модульная архитектура приложенияNPM и модульная архитектура приложения
NPM и модульная архитектура приложения
Denis Latushkin
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
Александр Шаповал «Контейнеры Windows в Microsoft Azure и on-premise»
SpbDotNet Community
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в Яндексе
Andrey Kazarinov
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
aviatakz
Использование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостингаИспользование контейнеризации в среде массового хостинга
Использование контейнеризации в среде массового хостинга
Yandex
Containers in real world презентация
Containers in real world презентацияContainers in real world презентация
Containers in real world презентация
Pavel Odintsov
использование .Net framework
использование .Net frameworkиспользование .Net framework
использование .Net framework
jskonst

More from Andrey Markelov (6)

Cloud for Telco & NFV (OpenStack)
Cloud for Telco & NFV (OpenStack)Cloud for Telco & NFV (OpenStack)
Cloud for Telco & NFV (OpenStack)
Andrey Markelov
OpenShift 2.2
OpenShift 2.2OpenShift 2.2
OpenShift 2.2
Andrey Markelov
CloudForms 3
CloudForms 3CloudForms 3
CloudForms 3
Andrey Markelov
Red Hat Storage 3.0
Red Hat Storage 3.0Red Hat Storage 3.0
Red Hat Storage 3.0
Andrey Markelov
Open source private cloud. ROSS-2011. Markelov
Open source private cloud. ROSS-2011. MarkelovOpen source private cloud. ROSS-2011. Markelov
Open source private cloud. ROSS-2011. Markelov
Andrey Markelov

Введение в Docker

  • 2. 2 Контейнеры и виртуализация ● Разные концепции ● Виртуализация – вертикальное абстрагирование ● Контейнеры – горизонтальное разбиение ● Контейнеры используются для замены виртуализации там, где они справляются лучше: ● Горизонтальная изоляция приложений ● Делегирование окружений ● “Виртуализация приложений” ● Максимальная плотность ● Зачастую контейнеры используются поверх виртуализации
  • 4. 4 Namespaces (пространства имен) ● Mount namespaces ● mount(), umount() ● UTS namespaces ● uname() ● IPC namespaces ● System V IPC objects, POSIX message queues ● PID namespaces ● /proc, PID ● Network namespaces ● NICs, firewall, routing table
  • 5. 5 Control Groups (CGroups) ● Десять групп ● Основные группы: ● cpu ● memory ● blkio ● systemctl ● net-prio ● cgconfig (устарела) libcgroup будет удалена
  • 6. 6 SELinux – реализация MAC для GNU/Linux ● Интегрирована в ядро ● LSM и расширенные атрибуты ● Для чего использовать: ● Запуск программ с минимальными привилегиями ● Защита от эксплоитов ● Защита пользовательских данных ● Для чего не предназначена: ● Аудит кода ● Шифрование ● Обновления
  • 7. 7 Docker – изменяет правила игры ● Docker CLI интересен, но это не столь значительное нововведение. Технологии, позволяющие создавать контейнеры в GNU/Linux > 10 лет ● Docker как формат упаковки и распространения приложений – вот что важно!
  • 8. 8 Docker - понятия ● Контейнер – запущенное из образа приложение ● Образ – статический снимок конфигурации контейнера. Образы могут зависить от других образов. Образ всегда r/o. Изменения сохраняются только созданием образа поверх образа. ● Образ платформы – не имеющий родительских образов. Содержит базовые библиотеки и утилиты для запуска приложений.
  • 9. 9 Docker – упаковка приложений ● API и формат образов: ● Перемещаемость контейнеров между хостами ● Контроль версий и переиспользование компонентов ● Удаленный репозиторий для образов ● Dockerfile – шаблон конфигурации для сборки образов
  • 10. 10 Контейнеры в Linux Вариант 1: Host Containers Host Containers Идентичные контейнеры Host Linux ● В Linux хост делится на защищенные контейнеры ● В каждом контейнере запускается один код пространства пользователя ● За : Обновления применяются просто ● Против : Ограничено только Одной средой исполнения
  • 11. 11 Контейнеры в Linux Вариант 2: Image-based Containers Image-based Containers Разные контейнеры Формат Docker ● Docker предоставляет формат образов для распространения программного обеспечения. ● Пакеты самого приложения и все зависимости для внедрения приложения в контейнерах ● Docker включает в себя среду исполнения для приложений
  • 12. 12 Возможные ограничения Docker ● Возможно не достаточно зрело для mission- critical ● Возможно не достаточно безопасно ● Достаточно быстро меняется ● Приложение – один процесс
  • 13. 13 Примеры реализаций ● Операционная система ● Linux общего назначения ● CoreOS ● Atomic ● VMware Photon ● Управление ● Cockpit ● Kubernetes ● IaaS – что угодно (OpenStack, AWS.. Google.)