Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

My talk on Docker, Youcon 2015

1,059 views

Published on

  • Be the first to comment

My talk on Docker, Youcon 2015

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

×