SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An IntroductionPOSSCON
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginnersJuneyoung Oh
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)Gourav Varma
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerLuong Vo
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Edureka!
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiquesdenier
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker, Inc.
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
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
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGAjeet Singh Raina
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to AdvanceParas Jain
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...Simplilearn
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageejlp12
 

La actualidad más candente (20)

Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Docker 101
Docker 101Docker 101
Docker 101
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
 
Docker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatiqueDocker - un outil pour faciliter le développement et le déploiement informatique
Docker - un outil pour faciliter le développement et le déploiement informatique
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
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
 
Why Docker
Why DockerWhy Docker
Why Docker
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 

Destacado

Кратчайшее введение в 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
 

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

Más de 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
 

Más de 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