Кратчайшее введение в docker по-русски

21
kirill.krinkin, Feb/2015 Краткое введение в Docker Все использованнные картинки и наименования являются собственностью их владельцев

Upload: kirill-krinkin

Post on 16-Jul-2015

485 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Краткое введение в Docker

Все использованнные картинки и наименования являются собственностью их владельцев

Page 2: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Основные темы

● Контейнерная виртуализация (в Linux)● Docker и его назначение● Компоненты ● Установка● Контейнеры: запуск, останов, присоединение,

демонизация...● Образы● Использование для тестирования/отладки

Page 3: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Виртуальные машины и контейнеры

Page 4: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Примеры контейнеров

● OpenVZ● Solaris Zones● lxc

Page 5: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Использование контейнеров

● масштабируемое развертывание многопользовательских сервисов

● легковесные «песочницы»● изолированные окружения процессов

Page 6: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Назначение Docker

Взято с http://www.netpatch.ru/

Page 7: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Миссия

● Docker:– простой и лекговесный путь от модели к

реальности

– минимизация риска падения приложений при переносе из окружения разработки в «боевые условия»

– Ускорение code->test->deploy->use

Page 8: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Компоненты

● Docker Client & Server– CLI

– RESTFull API

● Images– unionFS (каскадно-объединенное монтирование,

Knoppix)

● Registers● Containers

Page 9: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Технические компоненты

● libcontainer format● kernel namespaces

– fs isolation

– process isolation

– network isolation

● CoW FS● логирование STDOUT, STDIN,STDERR● CLI● GUI (сторонние разработки)

Page 10: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Базовые механизмы Linux

Page 11: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Контейнер Docker

● Формат образа● Набор стандартных операций● Исполнительная среда

Метафора: контейнер содержит образ программного обеспечения – груз, и над ним возможны операции: создание, старт, останов...

Page 12: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Применение

● ускорение инфраструктуры сборки приложений

● выполнение standalone сервисов в разных окружениях

● Jenkins CI● многопользовательские PaaS● легковесные песочницы● SaaS

Page 13: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Установка

– ядро 3.8+

– x64

– Хранилище:● Device Mapper ● AUFS● vfs● btrfs

– curl

● sudo sh -c "echo deb https://get.docker.io/ubuntu docker main >/etc/apt/sources.list.d/docker.list"

● curl -s https://get.docker.io/gpg | sudo apt-key add -● sudo apt-get update && sudo apt-get install lxc-docker● sudo docker info

Page 14: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Hello world #1

#docker#docker version#docker search tutorial#docker pull learn/tutorial#docker run echo "Hello world"

Page 15: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

run & start

● -t псевдотерминал● -i оставить STDIN открытым● имя образа● команда (например /bin/bash)

Page 16: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Основные команды

● create● run● start● stop● inspect● diff

Page 17: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Образ

Page 18: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Создание образа

● Действия в контейнере + commit● Dockerfile + build

– FROM

– MAINTAINER

– RUN

– CMD

– EXPOSE

– VOLUME

– ...

ex: #docker build --rm -t repo:image .

Page 19: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Аналогия с git

● docker diff ● docker commit● docker pull● docker push

Page 20: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Новинки

● Docker Swarm● Docker Compose

Page 21: Кратчайшее введение в docker по-русски

kirill.krinkin, Feb/2015

Ссылки

● https://www.docker.com/● https://www.docker.com/tryit/● http://hub.docker.com● http://www.netpatch.ru/research/docker/2014/03.

24-linux-docker-practical-guide.html● James Turnbull «The Docker Book»