Upload
fallenkain
View
496
Download
13
Embed Size (px)
Citation preview
Что такое докерПлатформа, которая поможет:1)Упаковать приложение и его зависимости в
контейнер2)Перенести его на любой сервер, на котором
установлен докер3)Запустить контейнер с приложением за доли
секунды
Создатели видят это так
Это виртуальная машина?Нет. Оно выглядит и работает как виртуальная
машина, но:Докер намного быстрееСам контейнер меньше в размерах
Зачем это нужноПростой способ доставки продукта по
серверамКонтейнер защищает продукт от нюансов
конфигурации каждого принимающего сервера
Контейнер защищает сервер от багов и дырв безопасности продукта
И докер очень простойЗапустить Ubuntu и выполнить в ней echodocker run ubuntu echo “hello virtual world”
Запустить CentOS с башем и подключиться кего терминалуdocker run -ti CentOS /bin/bash
Очень-очень простойЗапустить nodejs-app контейнер в бэкграундеdocker run –d nodejs-app
Как приоткрыть контейнер
Открыть конкретные порты (host:container)docker run -p 8080:80 –p 4443:443 … …
Или сразу всеdocker run –P … …
Подключить FSПодключить папку файловой системы хоста
для чтенияdocker run –v ~/www:/var/www:ro … …
Сделать контейнер-хранилище, и раздавать егофайловую систему остальнымdocker create -v /temp/db --name dbhostdocker run --volumes-from dbhost …
Как его раздобытьНативно работает на ubuntu, debian, CentOS,
etc.apt-get install docker.iocurl -sSL https://get.docker.com/ | sh
Для Windows и Mac OS Xboot2docker
VM и DockerКонтейнер != виртульная машинаВиртуальная машина эмулирует всё, в т.ч.
железоКонтейнер изолирует процессы,
пользователейи файловую систему
ТерминологияСлой (layer) – слепок файловой системыОбраз (image) – readonly слой + ссылка на
родительский imageБазовый образ – образ без родителяКонтейнер – запущенный образ + writeable
слой файловой системы + метаданные
Различия запуска
Как создать/сохранить образВзять готовый с репозитория и изменить
docker pull, docker commitСобрать из Dockerfile на основе
существующегоdocker build, docker push
Создать новый с нуляdocker create, docker import
Docker HubПочти как github, только для образов
Бесплатные паблик репозитории + 1 приватныйdocker pull ubuntudocker push betterUbuntu
Docker RegistryЛокальный репозиторий для образов
Установка на свой серверdocker pull registry_host:5000/ubuntudocker push registry_host:5000/betterUbuntu
Сохранить/загрузитьdocker save image > /fdd/image.tardocker load < /fdd/image.tar
Собрать из DockerfileFROM ubuntuRUN apt-get update && apt-get install nginxCOPY ~/www /var/wwwEXPOSE 80ENTRYPOINT nginx
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
Как это работает на PROD?
Бал
ансе
р (N
ginx
) :80 web_service :8001
web_service :8002
web_service :800n
Спасибо за внимание!Вопросы?