3. Что же такое Docker?
●
Во-первых, Docker это прекрасно!
●
Docker это:
●
Сервис
●
Утилита на Go
●
Средство виртуализации (?)
●
Компания с клевым логотипом
●
Что-то еще?
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
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)
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
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