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-адреса, расположенные на Кубе, в Иране, Северной Корее, Республике Крым, Судане и Сирии».