21

Docker - быстро, просто, наглядно

Embed Size (px)

Citation preview

Page 1: Docker - быстро, просто, наглядно
Page 2: Docker - быстро, просто, наглядно

Что такое докерПлатформа, которая поможет:1)Упаковать приложение и его зависимости в

контейнер2)Перенести его на любой сервер, на котором

установлен докер3)Запустить контейнер с приложением за доли

секунды

Page 3: Docker - быстро, просто, наглядно

Создатели видят это так

Page 4: Docker - быстро, просто, наглядно

Это виртуальная машина?Нет. Оно выглядит и работает как виртуальная

машина, но:Докер намного быстрееСам контейнер меньше в размерах

Page 5: Docker - быстро, просто, наглядно

Зачем это нужноПростой способ доставки продукта по

серверамКонтейнер защищает продукт от нюансов

конфигурации каждого принимающего сервера

Контейнер защищает сервер от багов и дырв безопасности продукта

Page 6: Docker - быстро, просто, наглядно

И докер очень простойЗапустить Ubuntu и выполнить в ней echodocker run ubuntu echo “hello virtual world”

Запустить CentOS с башем и подключиться кего терминалуdocker run -ti CentOS /bin/bash

Page 7: Docker - быстро, просто, наглядно

Очень-очень простойЗапустить nodejs-app контейнер в бэкграундеdocker run –d nodejs-app

Page 8: Docker - быстро, просто, наглядно

Как приоткрыть контейнер

Открыть конкретные порты (host:container)docker run -p 8080:80 –p 4443:443 … …

Или сразу всеdocker run –P … …

Page 9: Docker - быстро, просто, наглядно

Подключить FSПодключить папку файловой системы хоста

для чтенияdocker run –v ~/www:/var/www:ro … …

Сделать контейнер-хранилище, и раздавать егофайловую систему остальнымdocker create -v /temp/db --name dbhostdocker run --volumes-from dbhost …

Page 10: Docker - быстро, просто, наглядно

Как его раздобытьНативно работает на ubuntu, debian, CentOS,

etc.apt-get install docker.iocurl -sSL https://get.docker.com/ | sh

Для Windows и Mac OS Xboot2docker

Page 11: Docker - быстро, просто, наглядно

VM и DockerКонтейнер != виртульная машинаВиртуальная машина эмулирует всё, в т.ч.

железоКонтейнер изолирует процессы,

пользователейи файловую систему

Page 12: Docker - быстро, просто, наглядно

ТерминологияСлой (layer) – слепок файловой системыОбраз (image) – readonly слой + ссылка на

родительский imageБазовый образ – образ без родителяКонтейнер – запущенный образ + writeable

слой файловой системы + метаданные

Page 13: Docker - быстро, просто, наглядно

Различия запуска

Page 14: Docker - быстро, просто, наглядно

Как создать/сохранить образВзять готовый с репозитория и изменить

docker pull, docker commitСобрать из Dockerfile на основе

существующегоdocker build, docker push

Создать новый с нуляdocker create, docker import

Page 15: Docker - быстро, просто, наглядно

Docker HubПочти как github, только для образов

Бесплатные паблик репозитории + 1 приватныйdocker pull ubuntudocker push betterUbuntu

Page 16: Docker - быстро, просто, наглядно

Docker RegistryЛокальный репозиторий для образов

Установка на свой серверdocker pull registry_host:5000/ubuntudocker push registry_host:5000/betterUbuntu

Page 17: Docker - быстро, просто, наглядно

Сохранить/загрузитьdocker save image > /fdd/image.tardocker load < /fdd/image.tar

Page 18: Docker - быстро, просто, наглядно

Собрать из DockerfileFROM ubuntuRUN apt-get update && apt-get install nginxCOPY ~/www /var/wwwEXPOSE 80ENTRYPOINT nginx

Page 19: Docker - быстро, просто, наглядно

Deploy контейнераНа сервере сборки 1) docker build -t web_service web/2) docker tag web_service registry:5000/web_service3) docker push registry:5000/web_service

На docker host 1) docker run -d registry:5000/web_service

Page 20: Docker - быстро, просто, наглядно

Как это работает на PROD?

Бал

ансе

р (N

ginx

) :80 web_service :8001

web_service :8002

web_service :800n

Page 21: Docker - быстро, просто, наглядно

Спасибо за внимание!Вопросы?