Docker: история и аналоги

3 июня репозиторий Docker Hub убрал геоблокировку для пользователей из России. Ранее сообщалось, что он ушел из России в связи с санкциями США. Что такое Docker и чем его можно заменить — в справке «Ъ».

Что это такое

Docker — это программное обеспечение (контейнеризатор приложений), которое позволяет упаковать в контейнер приложение со всем окружением и зависимостями, а затем доставить и запустить его в целевой системе.

Приложение, упакованное таким образом, находится в изоляции от операционной системы и других приложений, что позволяет разработкам не задумываться, в каком окружении будет работать их приложение, а инженерам по эксплуатации — единообразно запускать приложения и не заботиться о системных зависимостях.

Контейнеры Docker представляют собой виртуальные блоки, служащие для запуска приложений. Каждый контейнер содержит пакет программного обеспечения, в который входит код, системные инструменты, библиотеки, зависимости и файлы конфигурации, необходимые для запуска определенного приложения. Вендоры библиотек, фреймворков и баз данных постоянно публиковали на Docker Hub свой софт в формате Docker image.

Обычно разработчикам приходится удалять прошлые библиотеки и базы данных, чтобы перейти на другую зависимость. Docker позволяет скачивать и развертывать образы программного обеспечения, а затем остановить их таким образом, что в операционной системе не останется никаких следов. Это возможно в силу того, что Docker позволяет размещать на одном и том же оборудовании несколько контейнеров.

Основные понятия Docker

Образ — шаблонный элемент, который используется при создании контейнеров.

Файл Docker — файл, который содержит инструкции для сборки образа.

Контейнер — виртуальные среды, где запускают приложение, которое развертывают из образа.

Ядро Docker — программное обеспечение с открытым кодом, оно обеспечивает создание и запуск приложений. Оно поддерживает приложения на операционных системах: Windows, Linux и других

Реестр — репозиторий, в котором хранятся образы.

Преимущества Docker:

— упрощает хранение, использование и распространение образов приложений;

— выполняет необходимые проверки безопасности и создает отчет о любых недостатках в безопасности;

— позволяет автоматизировать такие процессы, как непрерывное развертывание и тестирование, запуская веб-приложения при загрузке нового образа;

— может быть интегрирован в платформы GitHub и Jenkins, чем упрощает рабочие процессы.

Недостатки Docker:

— программы в контейнере Docker недостаточно изолированы от окружения хоста, как в реальной машине, поэтому они работают медленнее;

— контейнеры ничего не сохраняют, это неизменяемые read-only (формат, в котором недоступно редактирование) модули;

— контейнер, стертый из памяти, исчезает навсегда.

Аналоги Docker

Podman. Предоставляет схожие функции, но более сложен в использовании, так как требует дополнительной настройки.

Containerd. Это бывшая часть Docker. Сейчас она стала самостоятельным программным обеспечением, реализующим исполняемую среду для запуска контейнеров. Разработчики утверждают, что при его создании стремились к простоте, надежности и портируемости (адаптация некоторой программы или ее части так, чтобы она работала в другой среде).

Контейнеры Docker без Docker. Облачные сервисы нового типа, которые позволяют использовать приложения, базы данных и даже работать с контейнерами Docker без самого Docker. Например, Fly.io, Stackpath, Deno.land, Vercel.app.

История приложения

Первую версию Docker создали в 2008 году. Тогда это был внутренний продукт компании dotCloud (впоследствии ее переименовали в Docker Inc). В 2013 году dotCloud сделала Docker общедоступным.

30 мая 2024 года Docker ушел из России из-за санкций США. Сайт сервиса больше недоступен для пользователей с российскими IP-адресами. При попытке зайти на сайт появляется надпись: «Запрещено, Docker является американской компанией, мы должны соблюдать правила экспортного контроля США. В целях соблюдения правил мы блокируем все IP-адреса, расположенные на Кубе, в Иране, Северной Корее, Республике Крым, Судане и Сирии».

Евгений Козичев

Вся лента