SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Что такое Docker? Это Docker!
Александр Чистяков, главный инженер Git in Sky
20.06.2015
Юкон, Саратов
Давайте познакомимся
●
Меня зовут Саша
●
Я работаю в компании Git in Sky
●
Мы делаем прекрасное понятным
Что же такое Docker?
●
Во-первых, Docker это прекрасно!
●
Docker это:
●
Сервис
●
Утилита на Go
●
Средство виртуализации (?)
●
Компания с клевым логотипом
●
Что-то еще?
Контейнеризация это...
●
...новая виртуализация
●
Свежачок!
●
FreeBSD jail – since 2000
●
Virtuozzo – since 2000
●
Linux VServer – since 2001
●
OpenVZ – since 2005
●
Одна из черепашек лжет
Процесс работы с Docker
●
Написание Dockerfile
●
Сборка образа: docker build
●
Публикация образа в registry: docker push
●
Получение образа из registry: docker pull
●
Запуск контейнера: docker run
Как запустить сборку образа?
●
docker build -t gitinsky/hbase-master:0.1.1 --rm
/root/hbase-master-dockerized
●
В каталоге /root/hbase-master-dockerized находится Dockerfile
●
Который представляет собой “декларативное” описание того,
что надо сделать
●
Как водится, Dockerfile представляет собой программу на
кастомном DSL
Как выглядит Dockerfile?
●
Наследование от двух базовых образов (к счастью) невозможно!
Что такое registry?
●
SaaS: https://hub.docker.com
●
Есть Open Source standalone версия
●
Написана на Python
●
Переписана на Go
●
Версия на Python работает плохо
●
Версия на Go не работает вообще
Как устроен образ?
●
Чтобы распространение образов происходило
быстрее, они создаются послойно
●
Слои имеют уникальный хэш и кэшируются
●
Слой – это просто снэпшот файловой системы
●
В registry публикуются только те слои, которых
там еще нет, обратное тоже верно
●
Все это работает достаточно печально
Как, все же, устроен образ?
●
Варианты систем хранения для Docker:
●
AUFS (принято в Ubuntu)
●
Device mapper (принято в RH)
●
BTRFS (принято в Badoo)
●
ZFS (наверное, принято в Joyent)
Как запускать контейнер?
●
Варианты систем хранения для Docker:
●
AUFS (принято в Ubuntu)
●
Device mapper (принято в RH)
●
BTRFS (принято в Badoo)
●
ZFS (наверное, принято в Joyent)
docker images
●
Написание Dockerfile
●
Сборка образа:
●
Публикация образа в registry:
●
Получение образа из registry:
●
Запуск контейнера:
docker ps
●
Сборка образа:
●
Публикация образа в registry:
●
Получение образа из registry:
●
Запуск контейнера:
Зачем ты это сделала?
●
http://martinfowler.com/bliki/ImmutableServer.html
●
One world, one nation, one image
●
Все было придумано до нас – Badoo
выпускает обновления в виде .iso-образов
●
Docker просто стандартизировал этот
подход
«Толстые» и «тонкие»
●
Парни в свитерах дают сдачи:
●
https://phusion.github.io/baseimage-docker/
●
Внутри – cron, кошерный init, rsyslog и SSH-
сервер
●
Новый подход – один контейнер для одного
процесса
●
Сервисные задачи – в отдельных контейнерах
Как хранить состояние
●
В доклад врывается Капитан Очевидность
●
На всякий случай Капитан повторяет:
ТОЛЬКО ИЗВНЕ!
●
Как лучше всего начать хранить состояние
извне?
●
Запретить писать на FS контейнера!
●
Опция запуска --read-only
Docker и сеть
●
Штатно – проброс портов
●
Варианты ключа --net: bridge, none,
container:<name|id>, host
●
Docker пытается сам следить за пробросом
портов, но, если на хосте есть другой
конфигуратор фаервола, то дело плохо
Для тех, кому мало
●
OpenVSwitch:
●
gre
●
vxlan
●
Работает хорошо
●
Flannel:
●
По слухам, конфигуратор vxlan
Оркестрация
●
Orchestration describes the automated
arrangement, coordination, and management of
complex computer systems, middleware, and
services.
●
Не беспокойтесь, я тоже не понимаю смысл
вышенаписанного
Что же это такое?
●
Обеспечение service discovery
●
Планирование ресурсов
●
Слежение за всем этим зоопарком
●
docker link (и fig над ним)
●
Consul
●
Kubernetes, Mesos
●
Старый добрый Ansible
Docker и безопасность
●
Не нужно запускать ваши процессы в
контейнере от root
●
Не нужно использовать чужие образы без ревью
●
Нужно читать и понимать Dockerfiles
Docker и enterprise
●
Было в первом докладе
●
И в предыдущем тоже
Docker и Windows
●
Я не знаю, что такое Windows, извините :(
●
Но компания Docker делает версию своего
продукта и под Windows тоже
●
Правда, нам она ни к чему
Экосистема Docker
●
Каждый месяц появляются какие-нибудь новые
названия
●
Их очень много, я ожидаю, что некоторые умрут
●
Flocker, Citadel, Mesos, Kubernetes, Docker
Swarm, CoreOS, RancherOS, Project Atomic, ...
Список исп. литературы
●
Paul Graham “Beating the averages”
●
Этот слайд должен был называться “выводы”, но
выводов не будет
●
Просто лучше не используйте Docker, нам не
нужны конкуренты :)
Спасибо за внимание!
●
Пожалуйста, ваши вопросы?
●
С вами был
●
Александр Чистяков, главный инженер, Git in
Sky
●
http://gitinsky.com
●
alex@gitinsky.com
●
http://meetup.com/Docker-SPb

Weitere ähnliche Inhalte

Was ist angesagt?

"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) АксеновAlex Chistyakov
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose HadoopSerguei Gitinsky
 
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Anton Turetsky
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Ontico
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskAlex Chistyakov
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...Ontico
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годBadoo Development
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, BadooOntico
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsAlex Chistyakov
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Ontico
 
Docker integration into Badoo
Docker integration into BadooDocker integration into Badoo
Docker integration into BadooAnton Turetsky
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupBadoo Development
 
Мониторь, автоматизируй Docker
Мониторь, автоматизируй DockerМониторь, автоматизируй Docker
Мониторь, автоматизируй DockerBadoo Development
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Ontico
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017Alex Chistyakov
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 

Was ist angesagt? (20)

Using Ansible
Using AnsibleUsing Ansible
Using Ansible
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose Hadoop
 
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
 
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
 
Performance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon SaranskPerformance engineering stories from #fdminicon Saransk
Performance engineering stories from #fdminicon Saransk
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
 
Salt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systemsSalt and Ansible - Python-based CM systems
Salt and Ansible - Python-based CM systems
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
Docker integration into Badoo
Docker integration into BadooDocker integration into Badoo
Docker integration into Badoo
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Мониторь, автоматизируй Docker
Мониторь, автоматизируй DockerМониторь, автоматизируй Docker
Мониторь, автоматизируй Docker
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 

Andere mochten auch

My talk on Piter Py 2016
My talk on Piter Py 2016My talk on Piter Py 2016
My talk on Piter Py 2016Alex Chistyakov
 
My talk from PgConf.Russia 2016
My talk from PgConf.Russia 2016My talk from PgConf.Russia 2016
My talk from PgConf.Russia 2016Alex Chistyakov
 
My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016Alex Chistyakov
 
My talk at Linux Piter 2015
My talk at Linux Piter 2015My talk at Linux Piter 2015
My talk at Linux Piter 2015Alex Chistyakov
 
My talk on PgDay Russia 2014
My talk on PgDay Russia 2014My talk on PgDay Russia 2014
My talk on PgDay Russia 2014Alex Chistyakov
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruAlex Chistyakov
 
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14Alex Chistyakov
 
Управление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктурыУправление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктурыSerguei Gitinsky
 
My talk on administering PostgreSQL
My talk on administering PostgreSQLMy talk on administering PostgreSQL
My talk on administering PostgreSQLAlex Chistyakov
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?Daniel Podolsky
 
My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016Alex Chistyakov
 
Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Alex Chistyakov
 
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Alex Chistyakov
 
Презентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеПрезентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеAlex Chistyakov
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Alex Chistyakov
 
Optimization of a big PostgreSQL database
Optimization of a big PostgreSQL databaseOptimization of a big PostgreSQL database
Optimization of a big PostgreSQL databaseAlex Chistyakov
 
My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014Alex Chistyakov
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoAlex Chistyakov
 

Andere mochten auch (18)

My talk on Piter Py 2016
My talk on Piter Py 2016My talk on Piter Py 2016
My talk on Piter Py 2016
 
My talk from PgConf.Russia 2016
My talk from PgConf.Russia 2016My talk from PgConf.Russia 2016
My talk from PgConf.Russia 2016
 
My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016My talk on monitoring systems at RootConf 2016
My talk on monitoring systems at RootConf 2016
 
My talk at Linux Piter 2015
My talk at Linux Piter 2015My talk at Linux Piter 2015
My talk at Linux Piter 2015
 
My talk on PgDay Russia 2014
My talk on PgDay Russia 2014My talk on PgDay Russia 2014
My talk on PgDay Russia 2014
 
My talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ruMy talk on Graphite stack on 58it.ru
My talk on Graphite stack on 58it.ru
 
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
My talk on using LVM thin provisioning from SPbLUG/DevOps-40 meetup 25.06.14
 
Управление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктурыУправление рисками при эксплуатации ИТ-инфраструктуры
Управление рисками при эксплуатации ИТ-инфраструктуры
 
My talk on administering PostgreSQL
My talk on administering PostgreSQLMy talk on administering PostgreSQL
My talk on administering PostgreSQL
 
NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?NoSQL — неспроста ли это "ЖЖЖ"?
NoSQL — неспроста ли это "ЖЖЖ"?
 
My talk at Linux Piter 2016
My talk at Linux Piter 2016My talk at Linux Piter 2016
My talk at Linux Piter 2016
 
Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"Выступление в DataArt на тему "Кто такие DevOps?"
Выступление в DataArt на тему "Кто такие DevOps?"
 
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
Диалог с воображаемым слушателем, а также поток сознания, вне контекста НЕ ИН...
 
Презентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в МинскеПрезентация про DTrace на ADDconf в Минске
Презентация про DTrace на ADDconf в Минске
 
Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)Мой modern Perl (весенняя встреча Piter United)
Мой modern Perl (весенняя встреча Piter United)
 
Optimization of a big PostgreSQL database
Optimization of a big PostgreSQL databaseOptimization of a big PostgreSQL database
Optimization of a big PostgreSQL database
 
My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014My talk on LeoFS, HappyDev 2014
My talk on LeoFS, HappyDev 2014
 
DevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFoDevOps-40 meetup #7, Project FiFo
DevOps-40 meetup #7, Project FiFo
 

Ähnlich wie My talk on Docker, Youcon 2015

Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе dockerIvan Grishaev
 
Docker-контейнеризация: от local до production
Docker-контейнеризация: от local до productionDocker-контейнеризация: от local до production
Docker-контейнеризация: от local до productionRoman Kudlay
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальноеОмские ИТ-субботники
 
2015-12-05 Александр Рожнов - Свое облако под стейджинг
2015-12-05 Александр Рожнов - Свое облако под стейджинг2015-12-05 Александр Рожнов - Свое облако под стейджинг
2015-12-05 Александр Рожнов - Свое облако под стейджингHappyDev
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годAnton Turetsky
 
Как не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с DockerКак не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с Dockertrukhinyuri
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Ruslan Sharipov
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на DockerМихаил Бакулин
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Fwdays
 
ZFS - файловая система будущего
ZFS - файловая система будущегоZFS - файловая система будущего
ZFS - файловая система будущегоAlex Chistyakov
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Nikita Baksalyar
 
Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...
Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...
Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...corehard_by
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStackRussia
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиAndrey Markelov
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасRuslan Sharipov
 
Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядноDocker - быстро, просто, наглядно
Docker - быстро, просто, наглядноFallenKain
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиOSLL
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяСергей Ладыгин
 

Ähnlich wie My talk on Docker, Youcon 2015 (20)

Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
 
Docker-контейнеризация: от local до production
Docker-контейнеризация: от local до productionDocker-контейнеризация: от local до production
Docker-контейнеризация: от local до production
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
 
2015-12-05 Александр Рожнов - Свое облако под стейджинг
2015-12-05 Александр Рожнов - Свое облако под стейджинг2015-12-05 Александр Рожнов - Свое облако под стейджинг
2015-12-05 Александр Рожнов - Свое облако под стейджинг
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Как не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с DockerКак не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с Docker
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на Docker
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
ZFS - файловая система будущего
ZFS - файловая система будущегоZFS - файловая система будущего
ZFS - файловая система будущего
 
Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016Rust - GDG DevFest Siberia 2016
Rust - GDG DevFest Siberia 2016
 
Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...
Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...
Контроль окружения сборки C++ проектов с помощью Docker. Павел Филонов. CoreH...
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
 
Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядноDocker - быстро, просто, наглядно
Docker - быстро, просто, наглядно
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
 

Mehr von Alex Chistyakov

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019Alex Chistyakov
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 Alex Chistyakov
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018Alex Chistyakov
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtAlex Chistyakov
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019Alex Chistyakov
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019Alex Chistyakov
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and KubernetesAlex Chistyakov
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017Alex Chistyakov
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMAlex Chistyakov
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10Alex Chistyakov
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017Alex Chistyakov
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017Alex Chistyakov
 

Mehr von Alex Chistyakov (20)

My slides from DevOpsDays 2019
My slides from DevOpsDays 2019My slides from DevOpsDays 2019
My slides from DevOpsDays 2019
 
My slides from BMM №3 May 2019
My slides from BMM №3 May 2019My slides from BMM №3 May 2019
My slides from BMM №3 May 2019
 
My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019 My slides from DevOps-40 meetup Jun 2019
My slides from DevOps-40 meetup Jun 2019
 
My slides from SECR'2018
My slides from SECR'2018My slides from SECR'2018
My slides from SECR'2018
 
My slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArtMy slides from the first SPb SRE community meetup at DataArt
My slides from the first SPb SRE community meetup at DataArt
 
My slides from CC'2019
My slides from CC'2019My slides from CC'2019
My slides from CC'2019
 
My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019My slides from BMM №4 Nov 2019
My slides from BMM №4 Nov 2019
 
My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019My slides from DevOps-40 meetup Oct 2019
My slides from DevOps-40 meetup Oct 2019
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
Configuration management and Kubernetes
Configuration management and KubernetesConfiguration management and Kubernetes
Configuration management and Kubernetes
 
Ansible and other stuff
Ansible and other stuffAnsible and other stuff
Ansible and other stuff
 
Python performance engineering in 2017
Python performance engineering in 2017Python performance engineering in 2017
Python performance engineering in 2017
 
My talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGMMy talk at SPb SQA sub-meetup of ITGM
My talk at SPb SQA sub-meetup of ITGM
 
My talk at SECR 2017
My talk at SECR 2017My talk at SECR 2017
My talk at SECR 2017
 
On scaling teams
On scaling teamsOn scaling teams
On scaling teams
 
MariaDB workshop
MariaDB workshopMariaDB workshop
MariaDB workshop
 
Docker for JS people
Docker for JS peopleDocker for JS people
Docker for JS people
 
My talk on GitHub open data at ITGM #10
 My talk on GitHub open data at ITGM #10 My talk on GitHub open data at ITGM #10
My talk on GitHub open data at ITGM #10
 
My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017My talk on DevOps :) at Stachka 2017
My talk on DevOps :) at Stachka 2017
 
My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017My talk on programming languages at SPbLUG Mar 2017
My talk on programming languages at SPbLUG Mar 2017
 

My talk on Docker, Youcon 2015

  • 1. Что такое Docker? Это Docker! Александр Чистяков, главный инженер Git in Sky 20.06.2015 Юкон, Саратов
  • 2. Давайте познакомимся ● Меня зовут Саша ● Я работаю в компании Git in Sky ● Мы делаем прекрасное понятным
  • 3. Что же такое Docker? ● Во-первых, Docker это прекрасно! ● Docker это: ● Сервис ● Утилита на Go ● Средство виртуализации (?) ● Компания с клевым логотипом ● Что-то еще?
  • 4. Контейнеризация это... ● ...новая виртуализация ● Свежачок! ● FreeBSD jail – since 2000 ● Virtuozzo – since 2000 ● Linux VServer – since 2001 ● OpenVZ – since 2005 ● Одна из черепашек лжет
  • 5. Процесс работы с Docker ● Написание Dockerfile ● Сборка образа: docker build ● Публикация образа в registry: docker push ● Получение образа из registry: docker pull ● Запуск контейнера: docker run
  • 6. Как запустить сборку образа? ● docker build -t gitinsky/hbase-master:0.1.1 --rm /root/hbase-master-dockerized ● В каталоге /root/hbase-master-dockerized находится Dockerfile ● Который представляет собой “декларативное” описание того, что надо сделать ● Как водится, Dockerfile представляет собой программу на кастомном DSL
  • 7. Как выглядит Dockerfile? ● Наследование от двух базовых образов (к счастью) невозможно!
  • 8. Что такое registry? ● SaaS: https://hub.docker.com ● Есть Open Source standalone версия ● Написана на Python ● Переписана на Go ● Версия на Python работает плохо ● Версия на Go не работает вообще
  • 9. Как устроен образ? ● Чтобы распространение образов происходило быстрее, они создаются послойно ● Слои имеют уникальный хэш и кэшируются ● Слой – это просто снэпшот файловой системы ● В registry публикуются только те слои, которых там еще нет, обратное тоже верно ● Все это работает достаточно печально
  • 10. Как, все же, устроен образ? ● Варианты систем хранения для Docker: ● AUFS (принято в Ubuntu) ● Device mapper (принято в RH) ● BTRFS (принято в Badoo) ● ZFS (наверное, принято в Joyent)
  • 11. Как запускать контейнер? ● Варианты систем хранения для Docker: ● AUFS (принято в Ubuntu) ● Device mapper (принято в RH) ● BTRFS (принято в Badoo) ● ZFS (наверное, принято в Joyent)
  • 12. docker images ● Написание Dockerfile ● Сборка образа: ● Публикация образа в registry: ● Получение образа из registry: ● Запуск контейнера:
  • 13. docker ps ● Сборка образа: ● Публикация образа в registry: ● Получение образа из registry: ● Запуск контейнера:
  • 14. Зачем ты это сделала? ● http://martinfowler.com/bliki/ImmutableServer.html ● One world, one nation, one image ● Все было придумано до нас – Badoo выпускает обновления в виде .iso-образов ● Docker просто стандартизировал этот подход
  • 15. «Толстые» и «тонкие» ● Парни в свитерах дают сдачи: ● https://phusion.github.io/baseimage-docker/ ● Внутри – cron, кошерный init, rsyslog и SSH- сервер ● Новый подход – один контейнер для одного процесса ● Сервисные задачи – в отдельных контейнерах
  • 16. Как хранить состояние ● В доклад врывается Капитан Очевидность ● На всякий случай Капитан повторяет: ТОЛЬКО ИЗВНЕ! ● Как лучше всего начать хранить состояние извне? ● Запретить писать на FS контейнера! ● Опция запуска --read-only
  • 17. Docker и сеть ● Штатно – проброс портов ● Варианты ключа --net: bridge, none, container:<name|id>, host ● Docker пытается сам следить за пробросом портов, но, если на хосте есть другой конфигуратор фаервола, то дело плохо
  • 18. Для тех, кому мало ● OpenVSwitch: ● gre ● vxlan ● Работает хорошо ● Flannel: ● По слухам, конфигуратор vxlan
  • 19. Оркестрация ● Orchestration describes the automated arrangement, coordination, and management of complex computer systems, middleware, and services. ● Не беспокойтесь, я тоже не понимаю смысл вышенаписанного
  • 20. Что же это такое? ● Обеспечение service discovery ● Планирование ресурсов ● Слежение за всем этим зоопарком ● docker link (и fig над ним) ● Consul ● Kubernetes, Mesos ● Старый добрый Ansible
  • 21. Docker и безопасность ● Не нужно запускать ваши процессы в контейнере от root ● Не нужно использовать чужие образы без ревью ● Нужно читать и понимать Dockerfiles
  • 22. Docker и enterprise ● Было в первом докладе ● И в предыдущем тоже
  • 23. Docker и Windows ● Я не знаю, что такое Windows, извините :( ● Но компания Docker делает версию своего продукта и под Windows тоже ● Правда, нам она ни к чему
  • 24. Экосистема Docker ● Каждый месяц появляются какие-нибудь новые названия ● Их очень много, я ожидаю, что некоторые умрут ● Flocker, Citadel, Mesos, Kubernetes, Docker Swarm, CoreOS, RancherOS, Project Atomic, ...
  • 25. Список исп. литературы ● Paul Graham “Beating the averages” ● Этот слайд должен был называться “выводы”, но выводов не будет ● Просто лучше не используйте Docker, нам не нужны конкуренты :)
  • 26. Спасибо за внимание! ● Пожалуйста, ваши вопросы? ● С вами был ● Александр Чистяков, главный инженер, Git in Sky ● http://gitinsky.com ● alex@gitinsky.com ● http://meetup.com/Docker-SPb