SlideShare a Scribd company logo
1 of 21
Download to read offline
kirill.krinkin, Feb/2015
Краткое введение в Docker
Все использованнные картинки и наименования являются собственностью их владельцев
kirill.krinkin, Feb/2015
Основные темы
● Контейнерная виртуализация (в Linux)
● Docker и его назначение
● Компоненты
● Установка
● Контейнеры: запуск, останов, присоединение,
демонизация...
● Образы
● Использование для тестирования/отладки
kirill.krinkin, Feb/2015
Виртуальные машины и контейнеры
kirill.krinkin, Feb/2015
Примеры контейнеров
● OpenVZ
● Solaris Zones
● lxc
kirill.krinkin, Feb/2015
Использование контейнеров
● масштабируемое развертывание
многопользовательских сервисов
● легковесные «песочницы»
● изолированные окружения процессов
kirill.krinkin, Feb/2015
Назначение Docker
Взято с http://www.netpatch.ru/
kirill.krinkin, Feb/2015
Миссия
● Docker:
– простой и лекговесный путь от модели к
реальности
– минимизация риска падения приложений при
переносе из окружения разработки в «боевые
условия»
– Ускорение code->test->deploy->use
kirill.krinkin, Feb/2015
Компоненты
● Docker Client & Server
– CLI
– RESTFull API
● Images
– unionFS (каскадно-объединенное монтирование,
Knoppix)
● Registers
● Containers
kirill.krinkin, Feb/2015
Технические компоненты
● libcontainer format
● kernel namespaces
– fs isolation
– process isolation
– network isolation
● CoW FS
● логирование STDOUT, STDIN,STDERR
● CLI
● GUI (сторонние разработки)
kirill.krinkin, Feb/2015
Базовые механизмы Linux
kirill.krinkin, Feb/2015
Контейнер Docker
● Формат образа
● Набор стандартных операций
● Исполнительная среда
Метафора: контейнер содержит образ
программного обеспечения – груз, и над ним
возможны операции: создание, старт,
останов...
kirill.krinkin, Feb/2015
Применение
● ускорение инфраструктуры сборки
приложений
● выполнение standalone сервисов в разных
окружениях
● Jenkins CI
● многопользовательские PaaS
● легковесные песочницы
● SaaS
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
kirill.krinkin, Feb/2015
Hello world #1
#docker
#docker version
#docker search tutorial
#docker pull learn/tutorial
#docker run echo "Hello world"
kirill.krinkin, Feb/2015
run & start
● -t псевдотерминал
● -i оставить STDIN открытым
● имя образа
● команда (например /bin/bash)
kirill.krinkin, Feb/2015
Основные команды
● create
● run
● start
● stop
● inspect
● diff
kirill.krinkin, Feb/2015
Образ
kirill.krinkin, Feb/2015
Создание образа
● Действия в контейнере + commit
●
Dockerfile + build
– FROM
– MAINTAINER
– RUN
– CMD
– EXPOSE
– VOLUME
– ...
ex:
#docker build --rm -t repo:image .
kirill.krinkin, Feb/2015
Аналогия с git
● docker diff
● docker commit
● docker pull
● docker push
kirill.krinkin, Feb/2015
Новинки
● Docker Swarm
● Docker Compose
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»

More Related Content

What's hot

Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
 

What's hot (20)

Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerТестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanes
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
 
Непрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в ЯндексеНепрерывная интеграция Python-проектов в Яндексе
Непрерывная интеграция Python-проектов в Яндексе
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
 
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)Elasticsearch(java) fluentbit(c++)    fluentd(ruby) kibana(javascript)
Elasticsearch(java) fluentbit(c++) fluentd(ruby) kibana(javascript)
 
Ansible in the enterprise
Ansible in the enterpriseAnsible in the enterprise
Ansible in the enterprise
 
Docker с чем едят и для чего используют
Docker с чем едят и для чего используютDocker с чем едят и для чего используют
Docker с чем едят и для чего используют
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015
 
Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
 

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

Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризации
Alexander Kirillov
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
COMAQA.BY
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
Anton Turetsky
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
Badoo Development
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015
Alex Chistyakov
 
Mos day2015 -mirantis-- murano
Mos day2015 -mirantis-- muranoMos day2015 -mirantis-- murano
Mos day2015 -mirantis-- murano
Mirantis IT Russia
 

Similar to Кратчайшее введение в docker по-русски (20)

OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Docker-контейнеризация: от local до production
Docker-контейнеризация: от local до productionDocker-контейнеризация: от local до production
Docker-контейнеризация: от local до production
 
Зачем мне docker, я же сисадмин?!
Зачем мне docker, я же сисадмин?!Зачем мне docker, я же сисадмин?!
Зачем мне docker, я же сисадмин?!
 
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризации
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
Как не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с DockerКак не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с Docker
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на Docker
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
 
Enabling Docker Applications on OpenStack (using Murano)
Enabling Docker Applications on OpenStack (using Murano) Enabling Docker Applications on OpenStack (using Murano)
Enabling Docker Applications on OpenStack (using Murano)
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Kubernetes and docker
Kubernetes and dockerKubernetes and docker
Kubernetes and docker
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015My talk on Docker, Youcon 2015
My talk on Docker, Youcon 2015
 
Mos day2015 -mirantis-- murano
Mos day2015 -mirantis-- muranoMos day2015 -mirantis-- murano
Mos day2015 -mirantis-- murano
 

More from OSLL

Fruct14 sholokhova
Fruct14 sholokhovaFruct14 sholokhova
Fruct14 sholokhova
OSLL
 
SECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profilingSECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profiling
OSLL
 
Smart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integrationSmart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integration
OSLL
 

More from OSLL (20)

SLAM Constructor Framework for ROS
SLAM Constructor Framework for ROSSLAM Constructor Framework for ROS
SLAM Constructor Framework for ROS
 
Студентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работеСтудентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работе
 
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
 
MOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern EducationMOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern Education
 
Работа с геоданными в MongoDb
Работа с геоданными в MongoDbРабота с геоданными в MongoDb
Работа с геоданными в MongoDb
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
 
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagImplementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
 
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
 
[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool
 
Block-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contraBlock-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contra
 
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
 
Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFS
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор Btrfs
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы Ceph
 
Raspberry Pi robot with ROS
Raspberry Pi robot with ROSRaspberry Pi robot with ROS
Raspberry Pi robot with ROS
 
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux ContainersVirtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
 
Source code analyzer
Source code analyzer Source code analyzer
Source code analyzer
 
Fruct14 sholokhova
Fruct14 sholokhovaFruct14 sholokhova
Fruct14 sholokhova
 
SECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profilingSECR'13 Lightweight linux shared libraries profiling
SECR'13 Lightweight linux shared libraries profiling
 
Smart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integrationSmart-M3 and Geo2Tag integration
Smart-M3 and Geo2Tag integration
 

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