SlideShare a Scribd company logo
1 of 24
Паша Клименков
Что такое докер
Платформа, которая поможет:
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

What's hot

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginnersJuneyoung Oh
 
Containerization and Docker
Containerization and DockerContainerization and Docker
Containerization and DockerMegha Bansal
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersYajushi Srivastava
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionRobert Reiz
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionSparkbit
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Herofazalraja
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefitsAmit Manwade
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 

What's hot (20)

Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 
Docker
DockerDocker
Docker
 
Containerization and Docker
Containerization and DockerContainerization and Docker
Containerization and Docker
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
Dockerfile
Dockerfile Dockerfile
Dockerfile
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Docker
DockerDocker
Docker
 
What is Docker
What is DockerWhat is Docker
What is Docker
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 

Viewers also liked

Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиOSLL
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяСергей Ладыгин
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революцияGetDev.NET
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Ruslan Sharipov
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Ontico
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TKConf
 
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 #25Alex Chistyakov
 
«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​FDConf
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими рукамиchaykaborya
 
Методологии верстки
Методологии версткиМетодологии верстки
Методологии версткиElizaveta Selivanova
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationSQALab
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Fwdays
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасRuslan Sharipov
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to productionAnton Turetsky
 
Docker в виртуальной среде VMware
Docker в виртуальной среде VMwareDocker в виртуальной среде VMware
Docker в виртуальной среде VMwareAndrey Konovalov
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировOpenVZ
 
Делаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх WebdriverДелаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх WebdriverSQALab
 
Web app syncronizations, Sockets, tricks and hacks
Web app syncronizations, Sockets, tricks and hacks Web app syncronizations, Sockets, tricks and hacks
Web app syncronizations, Sockets, tricks and hacks Egor Malkevich
 

Viewers also liked (20)

Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
Docker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоватьсяDocker : что это, зачем, и как им пользоваться
Docker : что это, зачем, и как им пользоваться
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?Docker - счастье для хомячка или ника?
Docker - счастье для хомячка или ника?
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.TК°Conf. Микросервисы и Docker. Глеб Паньшин.
TК°Conf. Микросервисы и Docker. Глеб Паньшин.
 
Docker. Основы
Docker. ОсновыDocker. Основы
Docker. Основы
 
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
 
«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​«Как перестать отлаживать асинхронные вызовы и начать жить»​
«Как перестать отлаживать асинхронные вызовы и начать жить»​
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими руками
 
Методологии верстки
Методологии версткиМетодологии верстки
Методологии верстки
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
Депрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчасДепрокрастинируем Docker: контейнеры здесь и сейчас
Депрокрастинируем Docker: контейнеры здесь и сейчас
 
2015 (2)
2015 (2)2015 (2)
2015 (2)
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
 
Docker в виртуальной среде VMware
Docker в виртуальной среде VMwareDocker в виртуальной среде VMware
Docker в виртуальной среде VMware
 
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел ТихомировРазвёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
 
Делаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх WebdriverДелаем кроссбраузерные тесты поверх Webdriver
Делаем кроссбраузерные тесты поверх Webdriver
 
Web app syncronizations, Sockets, tricks and hacks
Web app syncronizations, Sockets, tricks and hacks Web app syncronizations, Sockets, tricks and hacks
Web app syncronizations, Sockets, tricks and hacks
 

Similar to Что такое Docker

Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядноDocker - быстро, просто, наглядно
Docker - быстро, просто, наглядноFallenKain
 
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"LogeekNightUkraine
 
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииAlexander Kirillov
 
Как не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с DockerКак не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с Dockertrukhinyuri
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на DockerМихаил Бакулин
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanesPavel Emelyanov
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019corehard_by
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStackRussia
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Ontico
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersStas Pavlov
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиAndrey Markelov
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureStas Pavlov
 
obzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovobzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovSergey Maximov
 
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-2016Vad Tymoshyk
 
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerТестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerAnton Maksimov
 

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

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"
 
Docker
DockerDocker
Docker
 
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризации
 
Docker 1.9
Docker 1.9Docker 1.9
Docker 1.9
 
Как не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с DockerКак не стать рабом облака. PaaS 2.0 с Docker
Как не стать рабом облака. PaaS 2.0 с Docker
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на Docker
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanes
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019Автоматизируй это. Кирилл Тихонов ➠  CoreHard Autumn 2019
Автоматизируй это. Кирилл Тихонов ➠ CoreHard Autumn 2019
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and Containers
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке Azure
 
obzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierovobzor-tiekhnologhii-kontieinierov
obzor-tiekhnologhii-kontieinierov
 
Docker&Azure
Docker&AzureDocker&Azure
Docker&Azure
 
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
 
Тестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на DockerТестовый стенд для большого числа проектов на Docker
Тестовый стенд для большого числа проектов на Docker
 

More from Pavel Klimiankou

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

More from Pavel Klimiankou (9)

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

Что такое 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