SlideShare a Scribd company logo
2
Most read
6
Most read
16
Most read
Паша Клименков
Что такое докер
Платформа, которая поможет:
1) Упаковать приложение и его зависимости в контейнер
2) Перенести его на любой сервер, на котором установлен
докер
3) Запустить контейнер с приложением за доли секунды
Это виртуальная машина?
Нет. Оно выглядит и работает как виртуальная
машина, но:
 Докер намного быстрее
 Сам контейнер меньше в размерах
Зачем это нужно
 Простой способ доставки продукта по серверам
 Контейнер защищает продукт от нюансов
конфигурации каждого принимающего сервера
 Контейнер защищает сервер от багов и дыр в
безопасности продукта
Создатели видят это так
И докер очень простой
 Запустить Ubuntu и выполнить в ней echo
docker run ubuntu echo “hello virtual world”
 Запустить CentOS с башем и подключиться к его
терминалу
docker run -ti CentOS /bin/bash
Очень-очень простой
 Запустить nodejs-app контейнер в бэкграунде и
разрешить доступ к нему по 80му порту
docker run -p 80:80 –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 dbhost
docker run --volumes-from dbhost …
Как его раздобыть
 Нативно работает на ubuntu, debian, CentOS, etc.
apt-get install docker.io
 Для Windows и Mac OS X
boot2docker
boot2docker
VirtualBox, который притворяется консольной утилитой
Важно!
 Если открыть любой порт контейнера, работая с
boot2docker, он откроется в Virtual Box, не на хосте
=> заходим по IP виртуалки, не 127.0.0.1
boot2docker ip
VM и Docker
 Контейнер !== виртульная машина
 Docker !== гипервизор
 Виртуальная машина эмулирует всё, в т.ч. железо
 Контейнер изолирует процессы, пользователей и
файловую систему
Поэтому
 Запуск контейнера занимает доли секунды
 У контейнеров общее Linux ядро хоста
=> нативно запускается только на Linux машинах
 Маленький размер образа
 На одной машине можно запустить раз в 6 больше
контейнеров, чем виртуальных машин
Вот так
Терминология
 Слой (layer) – слепок файловой системы
 Образ (image) – readonly слой + ссылка на
родительский image
 Базовый образ – образ без родителя
 Контейнер – запущенный образ + writeable слой
файловой системы + метаданные
Всё вместе
Docker и Vagrant
 Немного разные фокусы:
 Docker – контейнерная доставка софта
 Vagrant – конфигурация и развертывание рабочей
станции, используя VM либо контейнер провайдеров
 Vagrant может использовать Docker в качестве
провайдера
Как создать/сохранить образ
 Взять готовый с репозитория и изменить
docker pull, docker commit
 Собрать из Dockerfile на основе существующего
docker build
 Создать новый с нуля
docker create, docker import
Docker Hub
Почти как github, только для образов
 Бесплатные паблик репозитории + 1 приватный
 docker pull ubuntu
 docker push betterUbuntu
Изменить image
 Образы не меняются, но после завершения
контейнера можно найти его r/w слой и сохранить
docker run ubuntu mkdir ~/mydir
docker ps –a
docker commit <ID> image_name
Сохранить/загрузить
docker save image > /fdd/image.tar
docker load < /fdd/image.tar
Собрать из Dockerfile
FROM ubuntu
RUN apt-get update && apt-get install nginx
COPY ~/www /var/www
EXPOSE 80
ENTRYPOINT nginx
Всё! Вопросы?
/pasha.klimenkov

More Related Content

PPTX
Docker intro
Oleg Z
 
PPTX
Dockers and containers basics
Sourabh Saxena
 
PDF
Introduzione a Docker (Maggio 2017) [ITA]
Valerio Radice
 
PPTX
What is Docker
Pavel Klimiankou
 
PPTX
Docker introduction (1)
Gourav Varma
 
PPTX
Docker introduction &amp; benefits
Amit Manwade
 
PDF
Introduction to container based virtualization with docker
Bangladesh Network Operators Group
 
Docker intro
Oleg Z
 
Dockers and containers basics
Sourabh Saxena
 
Introduzione a Docker (Maggio 2017) [ITA]
Valerio Radice
 
What is Docker
Pavel Klimiankou
 
Docker introduction (1)
Gourav Varma
 
Docker introduction &amp; benefits
Amit Manwade
 
Introduction to container based virtualization with docker
Bangladesh Network Operators Group
 

What's hot (20)

PDF
Docker란 무엇인가? : Docker 기본 사용법
pyrasis
 
PDF
Docker Basics
Eueung Mulyana
 
PDF
Docker 101: Introduction to Docker
Docker, Inc.
 
PPT
Docker introduction
Phuc Nguyen
 
PDF
Introduction to Docker
Aditya Konarde
 
PDF
Docker Introduction
MANAOUIL Karim
 
PDF
Docker
SangtongPeesing
 
PDF
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
PDF
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Edureka!
 
PDF
Docker swarm
Alberto Guimarães Viana
 
PPTX
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
PPTX
Docker basics
AmanSoni129
 
PDF
Docker in real life
Nguyen Van Vuong
 
PDF
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio
 
PPTX
Jenkins tutorial
Mamun Rashid, CCDH
 
PPTX
Docker: From Zero to Hero
fazalraja
 
PDF
Introduction to Docker
Luong Vo
 
PDF
Atomicity In Redis: Thomas Hunter
Redis Labs
 
PDF
Spring Boot 3 And Beyond
VMware Tanzu
 
PPTX
Docker Introduction
Hao Fan
 
Docker란 무엇인가? : Docker 기본 사용법
pyrasis
 
Docker Basics
Eueung Mulyana
 
Docker 101: Introduction to Docker
Docker, Inc.
 
Docker introduction
Phuc Nguyen
 
Introduction to Docker
Aditya Konarde
 
Docker Introduction
MANAOUIL Karim
 
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Edureka!
 
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
Docker basics
AmanSoni129
 
Docker in real life
Nguyen Van Vuong
 
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio
 
Jenkins tutorial
Mamun Rashid, CCDH
 
Docker: From Zero to Hero
fazalraja
 
Introduction to Docker
Luong Vo
 
Atomicity In Redis: Thomas Hunter
Redis Labs
 
Spring Boot 3 And Beyond
VMware Tanzu
 
Docker Introduction
Hao Fan
 
Ad

Viewers also liked (20)

PDF
Кратчайшее введение в docker по-русски
OSLL
 
ODP
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
 
PDF
Docker контейнерная революция
GetDev.NET
 
PDF
Docker - счастье для хомячка или ника?
Ruslan Sharipov
 
PDF
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
PDF
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
 
PDF
Docker. Основы
Ivan Miniailenko
 
PDF
My talk on Docker from Moscow Django Meetup #25
Alex Chistyakov
 
PDF
«Как перестать отлаживать асинхронные вызовы и начать жить»​
FDConf
 
PPTX
Yeoman generator своими руками
chaykaborya
 
PPTX
Методологии верстки
Elizaveta Selivanova
 
PPTX
Docker + Selenium Webdriver в рамках Continuous Integration
SQALab
 
PDF
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
 
PDF
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
 
PDF
2015 (2)
DINESH JAYARAM
 
PDF
Docker: from understanding to production
Anton Turetsky
 
PPTX
Docker в виртуальной среде VMware
Andrey Konovalov
 
PDF
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
OpenVZ
 
PDF
Делаем кроссбраузерные тесты поверх Webdriver
SQALab
 
PPTX
Web app syncronizations, Sockets, tricks and hacks
Egor Malkevich
 
Кратчайшее введение в docker по-русски
OSLL
 
Docker : что это, зачем, и как им пользоваться
Сергей Ладыгин
 
Docker контейнерная революция
GetDev.NET
 
Docker - счастье для хомячка или ника?
Ruslan Sharipov
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Ontico
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TKConf
 
Docker. Основы
Ivan Miniailenko
 
My talk on Docker from Moscow Django Meetup #25
Alex Chistyakov
 
«Как перестать отлаживать асинхронные вызовы и начать жить»​
FDConf
 
Yeoman generator своими руками
chaykaborya
 
Методологии верстки
Elizaveta Selivanova
 
Docker + Selenium Webdriver в рамках Continuous Integration
SQALab
 
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Ruslan Sharipov
 
2015 (2)
DINESH JAYARAM
 
Docker: from understanding to production
Anton Turetsky
 
Docker в виртуальной среде VMware
Andrey Konovalov
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
OpenVZ
 
Делаем кроссбраузерные тесты поверх Webdriver
SQALab
 
Web app syncronizations, Sockets, tricks and hacks
Egor Malkevich
 
Ad

Similar to Что такое Docker (20)

PPT
Docker - быстро, просто, наглядно
FallenKain
 
PPTX
Docker
Dmitrii Stoian
 
PDF
Локальное окружение на Docker
Михаил Бакулин
 
ODP
Введение в Docker
Andrey Markelov
 
PDF
[ISC] Docker + Swarm
yalegko
 
PDF
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
LogeekNightUkraine
 
PDF
Как не стать рабом облака. PaaS 2.0 с Docker
trukhinyuri
 
PPTX
Введение в Docker
Кузьмицкий Александр
 
PDF
obzor-tiekhnologhii-kontieinierov
Sergey Maximov
 
PDF
Окружение разработчика - от виртуализации к контейнеризации
Alexander Kirillov
 
PDF
Docker for JS people
Alex Chistyakov
 
PDF
Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Ontico
 
PDF
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
 
PDF
Docker & Puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Badoo Development
 
PDF
OpenStack и Docker: вместе и по отдельности
OpenStackRussia
 
ODP
My talk on Docker, Youcon 2015
Alex Chistyakov
 
PDF
DevCon School. Azure Microservices and Containers
Stas Pavlov
 
PDF
OpenStack и Docker: вместе и по отдельности
Andrey Markelov
 
PPTX
Dev ops.events.v tymoshyk-20-oct-2016
Vad Tymoshyk
 
Docker - быстро, просто, наглядно
FallenKain
 
Локальное окружение на Docker
Михаил Бакулин
 
Введение в Docker
Andrey Markelov
 
[ISC] Docker + Swarm
yalegko
 
Andrii Medvedchuk "Kubernetes and Docker Basics for Running Web Apps"
LogeekNightUkraine
 
Как не стать рабом облака. PaaS 2.0 с Docker
trukhinyuri
 
Введение в Docker
Кузьмицкий Александр
 
obzor-tiekhnologhii-kontieinierov
Sergey Maximov
 
Окружение разработчика - от виртуализации к контейнеризации
Alexander Kirillov
 
Docker for JS people
Alex Chistyakov
 
Docker & puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Ontico
 
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
 
Docker & Puppet - как их скрестить и надо ли вам это, Антон Турецкий (Badoo)
Badoo Development
 
OpenStack и Docker: вместе и по отдельности
OpenStackRussia
 
My talk on Docker, Youcon 2015
Alex Chistyakov
 
DevCon School. Azure Microservices and Containers
Stas Pavlov
 
OpenStack и Docker: вместе и по отдельности
Andrey Markelov
 
Dev ops.events.v tymoshyk-20-oct-2016
Vad Tymoshyk
 

More from Pavel Klimiankou (9)

PPTX
Troubleshooting .net core on linux
Pavel Klimiankou
 
PDF
Functional programming techniques in regular JavaScript
Pavel Klimiankou
 
PDF
Приёмы функционального программирования в обычном JavaScript
Pavel Klimiankou
 
PPTX
Browser APIs for data exchange: types and application
Pavel Klimiankou
 
PPTX
Браузерные API обмена данными: какие и зачем
Pavel Klimiankou
 
PPTX
Кратчайшая история JavaScript
Pavel Klimiankou
 
PPTX
Chrome Extensions
Pavel Klimiankou
 
PPTX
Game physics in JavaScript
Pavel Klimiankou
 
PPTX
Игровая физика в JavaScript
Pavel Klimiankou
 
Troubleshooting .net core on linux
Pavel Klimiankou
 
Functional programming techniques in regular JavaScript
Pavel Klimiankou
 
Приёмы функционального программирования в обычном JavaScript
Pavel Klimiankou
 
Browser APIs for data exchange: types and application
Pavel Klimiankou
 
Браузерные API обмена данными: какие и зачем
Pavel Klimiankou
 
Кратчайшая история JavaScript
Pavel Klimiankou
 
Chrome Extensions
Pavel Klimiankou
 
Game physics in JavaScript
Pavel Klimiankou
 
Игровая физика в JavaScript
Pavel Klimiankou
 

Что такое Docker

  • 2. Что такое докер Платформа, которая поможет: 1) Упаковать приложение и его зависимости в контейнер 2) Перенести его на любой сервер, на котором установлен докер 3) Запустить контейнер с приложением за доли секунды
  • 3. Это виртуальная машина? Нет. Оно выглядит и работает как виртуальная машина, но:  Докер намного быстрее  Сам контейнер меньше в размерах
  • 4. Зачем это нужно  Простой способ доставки продукта по серверам  Контейнер защищает продукт от нюансов конфигурации каждого принимающего сервера  Контейнер защищает сервер от багов и дыр в безопасности продукта
  • 6. И докер очень простой  Запустить Ubuntu и выполнить в ней echo docker run ubuntu echo “hello virtual world”  Запустить CentOS с башем и подключиться к его терминалу docker run -ti CentOS /bin/bash
  • 7. Очень-очень простой  Запустить nodejs-app контейнер в бэкграунде и разрешить доступ к нему по 80му порту docker run -p 80:80 –d nodejs-app
  • 8. Как приоткрыть контейнер  Открыть конкретные порты (host:container) docker run -p 8080:80 –p 4443:443 … …  Или сразу все docker run –P … …
  • 9. Подключить FS  Подключить папку файловой системы хоста для чтения docker run –v ~/www:/var/www:ro … …  Сделать контейнер-хранилище, и раздавать его файловую систему остальным docker create -v /temp/db --name dbhost docker run --volumes-from dbhost …
  • 10. Как его раздобыть  Нативно работает на ubuntu, debian, CentOS, etc. apt-get install docker.io  Для Windows и Mac OS X boot2docker
  • 12. Важно!  Если открыть любой порт контейнера, работая с boot2docker, он откроется в Virtual Box, не на хосте => заходим по IP виртуалки, не 127.0.0.1 boot2docker ip
  • 13. VM и Docker  Контейнер !== виртульная машина  Docker !== гипервизор  Виртуальная машина эмулирует всё, в т.ч. железо  Контейнер изолирует процессы, пользователей и файловую систему
  • 14. Поэтому  Запуск контейнера занимает доли секунды  У контейнеров общее Linux ядро хоста => нативно запускается только на Linux машинах  Маленький размер образа  На одной машине можно запустить раз в 6 больше контейнеров, чем виртуальных машин
  • 16. Терминология  Слой (layer) – слепок файловой системы  Образ (image) – readonly слой + ссылка на родительский image  Базовый образ – образ без родителя  Контейнер – запущенный образ + writeable слой файловой системы + метаданные
  • 18. Docker и Vagrant  Немного разные фокусы:  Docker – контейнерная доставка софта  Vagrant – конфигурация и развертывание рабочей станции, используя VM либо контейнер провайдеров  Vagrant может использовать Docker в качестве провайдера
  • 19. Как создать/сохранить образ  Взять готовый с репозитория и изменить docker pull, docker commit  Собрать из Dockerfile на основе существующего docker build  Создать новый с нуля docker create, docker import
  • 20. Docker Hub Почти как github, только для образов  Бесплатные паблик репозитории + 1 приватный  docker pull ubuntu  docker push betterUbuntu
  • 21. Изменить image  Образы не меняются, но после завершения контейнера можно найти его r/w слой и сохранить docker run ubuntu mkdir ~/mydir docker ps –a docker commit <ID> image_name
  • 22. Сохранить/загрузить docker save image > /fdd/image.tar docker load < /fdd/image.tar
  • 23. Собрать из Dockerfile FROM ubuntu RUN apt-get update && apt-get install nginx COPY ~/www /var/www EXPOSE 80 ENTRYPOINT nginx