Система контейнеризации Docker

docker логотип 2023

Что такое 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 предоставляет самые сильные в отрасли возможности изоляции по умолчанию.

Источники