Система контейнеризации Docker
Что такое Docker?
Docker - это ведущая в мире платформа для контейнеризации программного обеспечения. Docker - это инструмент, разработанный для упрощения развертывания и запуска приложений с помощью контейнеров. Контейнеры позволяют разработчику упаковывать приложения со всеми необходимыми компонентами, такими как библиотеки и другие зависимости, и отправлять все это одним пакетом.
Образ Docker
Являются основой контейнеров. Образ - это упорядоченная коллекция изменений корневой файловой системы и соответствующих параметров выполнения для использования во время выполнения контейнера.
- Образ обычно состоит из объединения слоев файловой системы, уложенных друг на друга.
- Образ не имеет состояния и никогда не изменяется.
Docker Hub
Это централизованный ресурс для работы с Docker и его компонентами, который предоставляет следующие возможности:
- хостинг образов Docker,
- аутентификацию пользователей,
- Автоматизированную сборку образов и инструменты рабочего процесса, такие как триггеры сборки и webhooks ,
- интеграция с Github и Bitbucket.
Реестр Docker
Реестр - это размещенная служба, содержащая хранилища образов, которая отвечает на API реестра. Доступ к реестру по умолчанию можно получить через браузер на хабе Docker или с помощью команды поиска Docker.
Репозиторий
Репозиторий - это набор образов Docker, к которому можно предоставить общий доступ, разместив его на сервере реестра. Различные образы в репозитории могут быть помечены с помощью тегов.
Контейнеры
Образ контейнера Docker - это легкий, автономный, исполняемый пакет программного обеспечения, который включает в себя все необходимое для запуска приложения: код, время выполнения, системные инструменты, системные библиотеки и настройки.
Что Docker может сделать для вас
Docker - это стандарт де-факто для разработчиков для создания и обмена приложениями, который обеспечивает простоту, гибкость и возможность выбора для разработки программного обеспечения в любой инфраструктуре, чтобы вы могли быстрее выполнять свою работу и развертывать свои приложения.
Docker для разработчиков
Современные разработчики сталкиваются с разнообразием языков, фреймворков и архитектур, а также с разрывами интерфейсов между инструментами на каждом этапе жизненного цикла, в результате чего разработка приложений становится чрезвычайно сложной. Мы упрощаем и ускоряем рабочие процессы для разработчиков с помощью интегрированного конвейера разработки и компонентов приложений.
Простота
Docker обеспечивает удобный для разработчиков рабочий процесс на основе CLI и упрощает создание, совместное использование и запуск контейнерных приложений. Даже самые сложные приложения могут быть контейнеризированы. Вы можете создавать локально, развертывать в облаке и запускать в любом месте.
Гибкость
Docker легко настраивается и помогает ускорить рабочие процессы. Развертывайте и сворачивайте свои приложения быстрее. Запускайте и останавливайте быстрее. Меняйте или заменяйте образы сборки быстрее. Docker даже ускоряет миграцию приложений из центра обработки данных в облако.
Выбор
Docker предлагает вам широчайший выбор. Создавайте, делитесь и запускайте приложения в любой комбинации облаков, операционных систем, языков и фреймворков. Docker работает со всеми облачными провайдерами и поддерживает Kubernetes для оркестровки в гибридных архитектурах.
Контейнеры Docker есть везде: Linux, Windows, центры обработки данных, облака, бессерверные системы и т.д. Контейнерная технология Docker была запущена в 2013 году в качестве движка Docker Engine с открытым исходным кодом.
Она использовала существующие вычислительные концепции вокруг контейнеров и, в частности, в мире Linux, примитивы, известные как cgroups
и namespaces
. Технология Docker уникальна, поскольку она ориентирована на требования разработчиков и системных операторов по отделению зависимостей приложений от инфраструктуры.
Успех в мире Linux привел к партнерству с Microsoft, благодаря которому контейнеры Docker и их функциональность появились в Windows Server (иногда их называют контейнерами Docker Windows).
Технологии, доступные от Docker и его проекта с открытым исходным кодом Moby, были использованы всеми основными поставщиками центров обработки данных и облачными провайдерами. Многие из этих поставщиков используют Docker для своих контейнерно-нативных предложений IaaS. Кроме того, ведущие бессерверные платформы с открытым исходным кодом используют контейнерную технологию Docker.
Упаковка программного обеспечения, отправка и развертывание
Контейнер - это стандартная единица программного обеспечения, которая упаковывает код и все его зависимости, чтобы приложение быстро и надежно работало в разных вычислительных средах. Образ контейнера Docker - это легкий, автономный, исполняемый пакет программного обеспечения, который включает все необходимое для запуска приложения: код, время выполнения, системные инструменты, системные библиотеки и настройки.
Образы контейнеров становятся контейнерами во время выполнения, а в случае контейнеров Docker - образы становятся контейнерами, когда они запускаются на движке Docker Engine. Доступное как для приложений на базе Linux, так и для приложений на базе Windows, контейнеризированное программное обеспечение всегда будет работать одинаково, независимо от инфраструктуры. Контейнеры изолируют программное обеспечение от его окружения и обеспечивают его единообразную работу, несмотря на различия, например, между разработкой и постановкой.
Контейнеры Docker, работающие на Docker Engine
- Стандарт: Docker создал отраслевой стандарт для контейнеров, чтобы их можно было переносить куда угодно.
- Легкие: Контейнеры совместно используют системное ядро ОС машины и поэтому не требуют ОС для каждого приложения, что повышает эффективность сервера и снижает затраты на сервер и лицензирование.
- Безопасность: Приложения в контейнерах более безопасны, а Docker предоставляет самые сильные в отрасли возможности изоляции по умолчанию.