[Pluralsight] Docker платформа структуризации процесса разработки/доставки веб-проектов Часть 3 из 4
Docker — это открытая платформа для разработки, доставки и эксплуатации приложений. Docker разработан для более быстрого выкладывания ваших приложений. С помощью Docker вы можете отделить ваше приложение от вашей инфраструктуры и обращаться с инфраструктурой как управляемым приложением. Docker помогает выкладывать ваш код быстрее, быстрее тестировать, быстрее выкладывать приложения и уменьшить время между написанием кода и запуска кода. Docker делает это с помощью легковесной платформы контейнерной виртуализации, используя процессы и утилиты, которые помогают управлять и выкладывать ваши приложения.
В своем ядре docker позволяет запускать практически любое приложение, безопасно изолированное в контейнере. Безопасная изоляция позволяет вам запускать на одном хосте много контейнеров одновременно. Легковесная природа контейнера, который запускается без дополнительной нагрузки гипервизора, позволяет вам добиваться больше от вашего железа.
Платформа и средства контейнерной виртуализации могут быть полезны в следующих случаях:
Быстрое выкладывание ваших приложений
Docker прекрасно подходит для организации цикла разработки. Docker позволяет разработчикам использовать локальные контейнеры с приложениями и сервисами. Что в последствии позволяет интегрироваться с процессом постоянной интеграции и выкладывания (continuous integration and deployment workflow).
Например, ваши разработчики пишут код локально и делятся своим стеком разработки (набором docker образов) с коллегами. Когда они готовы, отравляют код и контейнеры на тестовую площадку и запускают любые необходимые тесты. С тестовой площадки они могут оправить код и образы на продакшен.
Более простое выкладывание и разворачивание
Основанная на контейнерах docker платформа позволят легко портировать вашу полезную нагрузку. Docker контейнеры могут работать на вашей локальной машине, как реальной так и на виртуальной машине в дата центре, так и в облаке.
Портируемость и легковесная природа docker позволяет легко динамически управлять вашей нагрузкой. Вы можете использовать docker, чтобы развернуть или погасить ваше приложение или сервисы. Скорость docker позволяет делать это почти в режиме реального времени.
Высокие нагрузки и больше полезных нагрузок
Docker легковесен и быстр. Он предоставляет устойчивую, рентабельную альтернативу виртуальным машинам на основе гипервизора. Он особенно полезен в условиях высоких нагрузок, например, при создания собственного облака или платформа-как-сервис (platform-as-service). Но он так же полезен для маленьких и средних приложений, когда вам хочется получать больше из имеющихся ресурсов.
Главные компоненты Docker
Docker использует архитектуру клиент-сервер. Docker клиент общается с демоном Docker, который берет на себя тяжесть создания, запуска, распределения ваших контейнеров. Оба, клиент и сервер могут работать на одной системе, вы можете подключить клиент к удаленному демону docker. Клиент и сервер общаются через сокет или через RESTful API.
Содержание на русском. Часть 3
├── 08. Построение образа с помощью Dockerfile
│ ├── 08_01-Введение в модуль курса
│ ├── 08_02-Представляем Dockerfile
│ ├── 08_03-Создание Dockerfile
│ ├── 08_04-Построение образа с помощью Dockerfile
│ ├── 08_05-Проверка на Dockerfile в Docker Hub
│ └── 08_06-Заканчиваем модуль курса
├── 09. Работа с реестрами
│ ├── 09_01-Введение в модуль курса
│ ├── 09_02-Создание публичного репозитория Docker Hub
│ ├── 09_03-Использование нашего публичного репозитория на Docker Hub
│ ├── 09_04-Введение в частные реестры
│ ├── 09_05-Построение частного реестра
│ ├── 09_06-Использование личного реестра
│ ├── 09_07-Docker Hub на предприятии
│ └── 09_08-Заканчиваем модуль курса
├── 10. Погружение в Dockerfile
│ ├── 10_01-Введение в модуль курса
│ ├── 10_02-Построение Кэша
│ ├── 10_03-Dockerfile и слои
│ ├── 10_04-Построение Web-сервера, используя Dockerfile
│ ├── 10_05-Запуск контейнера Web-сервера
│ ├── 10_06-Уменьшение числа слоев в образе
│ ├── 10_07-CMD инструкция (скрипт)
│ ├── 10_08-Входная точка инструкции (скрипта)
│ ├── 10_09-Переменные окружения инструкции (скрипта)
│ ├── 10_10-Volumes and the VOLUME Instruction
│ └── 10_11-Резюме модуля
Содержание на английском. Часть 3
├── 08. Building from a Dockerfile
│ ├── 08_01-Module Intro.mp4
│ ├── 08_02-Introducing the Dockerfile.mp4
│ ├── 08_03-Creating a Dockerfile.mp4
│ ├── 08_04-Building an Image from a Dockerfile.mp4
│ ├── 08_05-Inspecting a Dockerfile from Docker Hub.mp4
│ └── 08_06-Wrapup.mp4
├── 09. Working with Registries
│ ├── 09_01-Module Intro.mp4
│ ├── 09_02-Creating a Public Repo on Docker Hub.mp4
│ ├── 09_03-Using Our Public Repo on Docker Hub.mp4
│ ├── 09_04-Introduction to Private Registries.mp4
│ ├── 09_05-Building a Private Registry.mp4
│ ├── 09_06-Using a Private Registry.mp4
│ ├── 09_07-Docker Hub Enterprise.mp4
│ └── 09_08-Wrapup.mp4
├── 10. Diving Deeper with Dockerfile
│ ├── 10_01-Module Intro.mp4
│ ├── 10_02-The Build Cache.mp4
│ ├── 10_03-Dockerfile and Layers.mp4
│ ├── 10_04-Building a Web Server Dockerfile.mp4
│ ├── 10_05-Launching the Web Server Container.mp4
│ ├── 10_06-Reducing the Number of Layers in an Image.mp4
│ ├── 10_07-The CMD Instruction.mp4
│ ├── 10_08-The ENTRYPOINT Instruction.mp4
│ ├── 10_09-The ENV Instruction.mp4
│ ├── 10_10-Volumes and the VOLUME Instruction.mp4
│ └── 10_11-Module Recap.mp4
Есть четыре класса задач, для которых Docker подходит если не идеально, то лучше любого другого инструмента. Это:
// Как наберется народ, найдется и переводчик и организатор
// Заинтересовались – подписывайтесь!
Собираем на перевод
[Pluralsight] Docker платформа структуризации процесса разработки/доставки веб-проектов. Часть 3
[Pluralsight] Docker платформа структуризации процесса разработки/доставки веб-проектов. Часть 3
- Год выпуска: 2015
- Автор: Nigel Poulton
- Продолжительность части 3: 01:28:46
- Оригинальное название: Docker Deep Dive
Docker — это открытая платформа для разработки, доставки и эксплуатации приложений. Docker разработан для более быстрого выкладывания ваших приложений. С помощью Docker вы можете отделить ваше приложение от вашей инфраструктуры и обращаться с инфраструктурой как управляемым приложением. Docker помогает выкладывать ваш код быстрее, быстрее тестировать, быстрее выкладывать приложения и уменьшить время между написанием кода и запуска кода. Docker делает это с помощью легковесной платформы контейнерной виртуализации, используя процессы и утилиты, которые помогают управлять и выкладывать ваши приложения.
В своем ядре docker позволяет запускать практически любое приложение, безопасно изолированное в контейнере. Безопасная изоляция позволяет вам запускать на одном хосте много контейнеров одновременно. Легковесная природа контейнера, который запускается без дополнительной нагрузки гипервизора, позволяет вам добиваться больше от вашего железа.
Платформа и средства контейнерной виртуализации могут быть полезны в следующих случаях:
- упаковывание вашего приложения (и так же используемых компонент) в docker контейнеры;
- раздача и доставка этих контейнеров вашим командам для разработки и тестирования;
- выкладывания этих контейнеров на ваши продакшены, как в дата центры так и в облака.
Быстрое выкладывание ваших приложений
Docker прекрасно подходит для организации цикла разработки. Docker позволяет разработчикам использовать локальные контейнеры с приложениями и сервисами. Что в последствии позволяет интегрироваться с процессом постоянной интеграции и выкладывания (continuous integration and deployment workflow).
Например, ваши разработчики пишут код локально и делятся своим стеком разработки (набором docker образов) с коллегами. Когда они готовы, отравляют код и контейнеры на тестовую площадку и запускают любые необходимые тесты. С тестовой площадки они могут оправить код и образы на продакшен.
Более простое выкладывание и разворачивание
Основанная на контейнерах docker платформа позволят легко портировать вашу полезную нагрузку. Docker контейнеры могут работать на вашей локальной машине, как реальной так и на виртуальной машине в дата центре, так и в облаке.
Портируемость и легковесная природа docker позволяет легко динамически управлять вашей нагрузкой. Вы можете использовать docker, чтобы развернуть или погасить ваше приложение или сервисы. Скорость docker позволяет делать это почти в режиме реального времени.
Высокие нагрузки и больше полезных нагрузок
Docker легковесен и быстр. Он предоставляет устойчивую, рентабельную альтернативу виртуальным машинам на основе гипервизора. Он особенно полезен в условиях высоких нагрузок, например, при создания собственного облака или платформа-как-сервис (platform-as-service). Но он так же полезен для маленьких и средних приложений, когда вам хочется получать больше из имеющихся ресурсов.
Главные компоненты Docker
- Docker состоит из двух главных компонент;
- Docker: платформа виртуализации с открытым кодом;
- Docker Hub: наша платформа-как-сервис для распространения и управления docker контейнерами.
Docker использует архитектуру клиент-сервер. Docker клиент общается с демоном Docker, который берет на себя тяжесть создания, запуска, распределения ваших контейнеров. Оба, клиент и сервер могут работать на одной системе, вы можете подключить клиент к удаленному демону docker. Клиент и сервер общаются через сокет или через RESTful API.
Содержание на русском. Часть 3
├── 08. Построение образа с помощью Dockerfile
│ ├── 08_01-Введение в модуль курса
│ ├── 08_02-Представляем Dockerfile
│ ├── 08_03-Создание Dockerfile
│ ├── 08_04-Построение образа с помощью Dockerfile
│ ├── 08_05-Проверка на Dockerfile в Docker Hub
│ └── 08_06-Заканчиваем модуль курса
├── 09. Работа с реестрами
│ ├── 09_01-Введение в модуль курса
│ ├── 09_02-Создание публичного репозитория Docker Hub
│ ├── 09_03-Использование нашего публичного репозитория на Docker Hub
│ ├── 09_04-Введение в частные реестры
│ ├── 09_05-Построение частного реестра
│ ├── 09_06-Использование личного реестра
│ ├── 09_07-Docker Hub на предприятии
│ └── 09_08-Заканчиваем модуль курса
├── 10. Погружение в Dockerfile
│ ├── 10_01-Введение в модуль курса
│ ├── 10_02-Построение Кэша
│ ├── 10_03-Dockerfile и слои
│ ├── 10_04-Построение Web-сервера, используя Dockerfile
│ ├── 10_05-Запуск контейнера Web-сервера
│ ├── 10_06-Уменьшение числа слоев в образе
│ ├── 10_07-CMD инструкция (скрипт)
│ ├── 10_08-Входная точка инструкции (скрипта)
│ ├── 10_09-Переменные окружения инструкции (скрипта)
│ ├── 10_10-Volumes and the VOLUME Instruction
│ └── 10_11-Резюме модуля
Содержание на английском. Часть 3
├── 08. Building from a Dockerfile
│ ├── 08_01-Module Intro.mp4
│ ├── 08_02-Introducing the Dockerfile.mp4
│ ├── 08_03-Creating a Dockerfile.mp4
│ ├── 08_04-Building an Image from a Dockerfile.mp4
│ ├── 08_05-Inspecting a Dockerfile from Docker Hub.mp4
│ └── 08_06-Wrapup.mp4
├── 09. Working with Registries
│ ├── 09_01-Module Intro.mp4
│ ├── 09_02-Creating a Public Repo on Docker Hub.mp4
│ ├── 09_03-Using Our Public Repo on Docker Hub.mp4
│ ├── 09_04-Introduction to Private Registries.mp4
│ ├── 09_05-Building a Private Registry.mp4
│ ├── 09_06-Using a Private Registry.mp4
│ ├── 09_07-Docker Hub Enterprise.mp4
│ └── 09_08-Wrapup.mp4
├── 10. Diving Deeper with Dockerfile
│ ├── 10_01-Module Intro.mp4
│ ├── 10_02-The Build Cache.mp4
│ ├── 10_03-Dockerfile and Layers.mp4
│ ├── 10_04-Building a Web Server Dockerfile.mp4
│ ├── 10_05-Launching the Web Server Container.mp4
│ ├── 10_06-Reducing the Number of Layers in an Image.mp4
│ ├── 10_07-The CMD Instruction.mp4
│ ├── 10_08-The ENTRYPOINT Instruction.mp4
│ ├── 10_09-The ENV Instruction.mp4
│ ├── 10_10-Volumes and the VOLUME Instruction.mp4
│ └── 10_11-Module Recap.mp4
Есть четыре класса задач, для которых Docker подходит если не идеально, то лучше любого другого инструмента. Это:
- Упрощение процесса разворачивания/сопровождения проектов
Docker позволяет разбить проект на небольшие независимые, удобные в сопровождении компоненты, работать с которыми гораздо комфортнее, чем с реальными сущностями вроде Apache 2.4.12, установленного на хосте 1.2.3.4, работающем под управлением CentOS 6. - Continous development и zero-downtime deployment
Каждый образ Docker — вещь в себе, включающая сервис (или набор сервисов), окружение для его запуска и необходимые настройки. Поэтому контейнеры можно передавать между членами команды в ходе цикла «разработка -> тестирование -> внедрение» и быстро внедрять изменения, просто переключая настройки на новые контейнеры. - IaaS/PaaS
Благодаря легковесности контейнеров Docker можно использовать в качестве движка виртуализации в IaaS, а благодаря простоте миграции Docker становится идеальным решением для запуска сервисов в PaaS. - Запуск небезопасного кода
Docker позволяет запустить любой, в том числе графический софт внутри изолированного контейнера с помощью одной простой команды. Поэтому он идеально подходит для запуска разного рода недоверенного или просто небезопасного кода.
// Как наберется народ, найдется и переводчик и организатор
// Заинтересовались – подписывайтесь!