Download - Docker - счастье для хомячка или ника?
![Page 1: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/1.jpg)
Docker: счастье для хомячка или гика?
![Page 3: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/3.jpg)
Результаты опроса
![Page 4: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/4.jpg)
Что такое Docker?
Docker is an open platform for developers and sysadminsto build, ship, and run distributed applications
![Page 5: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/5.jpg)
Какие проблемы решает?
На настройку окружения вручную каждый разуходит много времени
Спустя какое то время, сложно разобраться,в каком состоянии сервер/набор софта
Различия в dev-окружениях разработчиков и боевых серверах
Сервер - помойка, никто не знает, что будет если удалить пакет XXXXXX
Сложно накатывать обновления софта и security-фиксы
Мигрировать на другой хостинг/сервер - больВыкатывать релизы - страшноХочется Continuos Delivery
![Page 6: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/6.jpg)
Какие проблемы решает?
![Page 7: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/7.jpg)
Многие из этих проблем уже решены в известных системах управления конфигурациями (chef / puppet / ansible /salt)
так всё же зачем нам Docker?
Стоп!!!
![Page 8: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/8.jpg)
Всё ещё остаётся проблема различия версий пакетов
Идея контейнеризации и изоляции
Выделение ресурсов
Docker advantages
Интеграция с CI
![Page 9: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/9.jpg)
Основные принципы Docker
Контейнеризация
![Page 10: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/10.jpg)
![Page 11: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/11.jpg)
Пример контейнеров
rails:latest sidekiq:latest postgres:9.4 rethinkdb:latest redis:latest logstash:latest elasticsearch:latest
> docker ps
![Page 12: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/12.jpg)
Linux Containers (LXC)
интерфейс, предоставляющий доступ к возможностям ядра Linux,
который позволяют запускать и управлятьконтейнерами
https://linuxcontainers.org/lxc/introduction/
![Page 13: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/13.jpg)
Docker architecture
![Page 14: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/14.jpg)
Docker против виртуальных машин: где профит, Карл?
Контейнеры запускаются в той же операционной системе,что и хост
AuFS в качестве файловой системы
Ресурсы между хостом и контейнером расшарены
Быстрый запуск (секунды против минут для полностью виртуализированной системы)
VM живёт вечно, контейнер - запускается и удаляется
![Page 15: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/15.jpg)
Docker против виртуальных машин: где профит, Карл?
![Page 16: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/16.jpg)
Docker против виртуальных машин: где профит, Карл?
![Page 17: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/17.jpg)
Docker: быстрый стартдля новичков
$ docker images
![Page 18: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/18.jpg)
Docker: быстрый стартдля новичков
![Page 19: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/19.jpg)
Docker: быстрый стартдля новичков
$ docker pull redis:3.0.1
![Page 20: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/20.jpg)
Docker: быстрый стартдля новичков
$ docker run -d --name redis redis:3.0.1
![Page 21: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/21.jpg)
Docker: быстрый стартдля новичков
$ docker run -d --name redis redis:3.0.1 -p 6379:6379
![Page 22: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/22.jpg)
Docker: быстрый стартдля новичков
$ docker run -d --name redis redis:3.0.1
Docker: быстрый стартдля новичков
![Page 23: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/23.jpg)
Docker: простой, как git
$ docker pull$ docker push
![Page 24: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/24.jpg)
Docker: простой, как git
![Page 25: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/25.jpg)
Docker: простой, как git
Образы отнаследованы от родителя
Base Image - начальный образ
Для нового образа мы можем воспользоваться любой версией уже
существующего образа (image)
Коммиты создают новый образ
![Page 26: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/26.jpg)
Dockerfile
FROM ubuntu:trusty
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -qq && apt-get install -y mysql-server-5.5 ADD my.cnf /etc/mysql/conf.d/my.cnf RUN chmod 664 /etc/mysql/conf.d/my.cnf ADD run /usr/local/bin/run RUN chmod +x /usr/local/bin/run
VOLUME ["/var/lib/mysql"] EXPOSE 3306 CMD ["/usr/local/bin/run"]
![Page 27: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/27.jpg)
Docker: bad parts
docker != микросервисы
![Page 28: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/28.jpg)
Docker: bad parts
в конце 2013 - в первой половине 2014 docker был ужасно нестабилен
![Page 29: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/29.jpg)
Docker: bad parts
нет понимания и ответа на вопрос, а как правильно готовить?
![Page 30: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/30.jpg)
Docker: bad parts
много маркетингового булшита вокруг
![Page 31: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/31.jpg)
Docker: bad parts
не работает на Windows и OSX
![Page 32: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/32.jpg)
OpenVPN Wordpress
Gitlab OwnCloud
ErrbitJenkins
Redmine Oracle XE FreeGeoIP
Perdocker code eval
Docker: полезные бонусы
DockerHub: масса полезных контейнеров на каждый день. Примеры:
![Page 33: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/33.jpg)
Docker: полезные бонусы
Docker Compose (ранее - fig) - простой инструмент для запуска контейнеров из специального конфига
web: build: ./Dockerfile links: - db - redis ports: - "8000:8000" db: image: postgresredis: image: redis
$ docker-compose up
![Page 34: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/34.jpg)
Docker: полезные бонусы
нет необходимости в Vagrant и виртуальных машинах (VirtualBox, Parallels)
$ docker-compose up
Docker Compose (ранее - fig) - простой инструмент для запуска контейнеров из специального конфига
![Page 35: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/35.jpg)
Docker: полезные бонусы
нет необходимости в Vagrant и виртуальных машинах (VirtualBox, Parallels)
$ docker-compose up
Docker Compose (ранее - fig) - простой инструмент для запуска контейнеров из специального конфига
![Page 36: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/36.jpg)
Docker: деплой
Docker Compose хорош для того, чтобы контейнеры запускать, но не очень крут тогда, когда
контейнеры надо перезапустить
![Page 37: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/37.jpg)
Docker: деплой
Docker Compose хорош для того, чтобы контейнеры запускать, но не очень крут тогда, когда
контейнеры надо перезапустить
Для zero-downtime нужно немноготерпения: nginx + два хоста в upstreams
на новый и старый контейнер
![Page 38: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/38.jpg)
Docker: деплой
upstream docker { server 127.0.0.1:8080; server 127.0.0.1:8080; }
server { listen 80; location / { proxy_pass http://docker; } }
![Page 39: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/39.jpg)
Docker: деплой
![Page 40: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/40.jpg)
Docker: деплой
Проблемы со сборкой в облаке:* лежит хостинг образов - не можем деплоить * бесплатные тарифные планы ущербны* сложно спрогнозировать скорость сборки
![Page 41: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/41.jpg)
Docker: деплой
CI, которые поддерживают Docker:
Jenkins (plugin)CircleCI Buildkite dron.io
shippable
…и многие другие
![Page 42: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/42.jpg)
Docker: деплой
Сборка и хостинг образов в облаке:
quay.io
tutum.co dotcloud.com
stackdock.com
…и многие другие
![Page 43: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/43.jpg)
Docker: деплой
Благодаря Docker, Continous Integration сервера способны:
* запускать 1:1 актуальное окружение * собирать одновременно много сборок * обеспечивать изоляцию между процессами сборки* запускать тесты в параллель
![Page 44: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/44.jpg)
Docker: деплой для гиков
Docker + CoreOS + Fleet
![Page 45: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/45.jpg)
Centurion от New Relic: этакая “capistrano” для docker контейнеров
Docker: deployment для полугика, полухомячка
![Page 46: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/46.jpg)
Centurion от New Relic: этакая “capistrano” для docker контейнеров
bundle exec centurion -e production -a deploy
Docker: deployment для полугика, полухомячка
![Page 47: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/47.jpg)
Docker: deployment для хомячков
cloud66.com
* работает c DigitalOcean и AWS * метрики* бэкапы* нотификации* firewall* не нужно беспокоиться о heartbleed/shellshock/poodle * деплой с айфончика
![Page 48: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/48.jpg)
Docker: deployment для хомячков
![Page 50: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/50.jpg)
Docker: выводы
Если у вас нет проблем с dependecy hell и запуском окружения, то ни системы управления конфигурациями,
ни докер вам не нужны
![Page 51: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/51.jpg)
Docker: выводы
Если у вас нет проблем с выкаткой в продакшн,
то ни системы управления конфигурациями, ни докер вам не нужны
![Page 52: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/52.jpg)
Docker: выводы
Если есть какая то боль, и автоматизации хочется, попробуйте Ansible
https://github.com/ansible/ansible
![Page 53: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/53.jpg)
Docker: выводы
Если у вы расстроились в chef / puppet / ansible /salt, или хотите получить всю выгоду от абстракций болеевысокого уровня - контейнеров - пробуйте docker.
![Page 54: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/54.jpg)
Docker: выводы
Docker может понравиться и хомячкам и гикам, есть множество инструментов и подходов вокруг
![Page 55: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/55.jpg)
Docker: выводы
Docker сейчас - production ready
![Page 56: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/56.jpg)
Docker: выводы
Вокруг Docker много денег и компаний: относитесь к маркетинговым заявлениям
с холодной головой
![Page 57: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/57.jpg)
Docker: выводы
Если у вас нет проблем с dependecy hell и запуском окружения, то ни системы управления конфигурациями,
ни докер вам не нужны
![Page 58: Docker - счастье для хомячка или ника?](https://reader034.vdocument.in/reader034/viewer/2022042615/55cdeb7fbb61ebc5048b481f/html5/thumbnails/58.jpg)
Спасибо за внимание!
Вопросы?