Новости
Семь Чёрных пятниц на неделе — и все в Serverspace!
Serverspace Black Friday
БС
Борислав Сухарев
23 октября 2022
Обновлено 30 мая 2023

Docker

Docker — это инструмент предназначенный для помощи в создании, развертывании и запуске приложений с использованием контейнеров. Говоря простыми словами, это программное обеспечение которое позволяет "собрать" приложение со всем его окружением и зависимостями в контейнер, который устанавливается на выбранную операционную систему (Docker стал поддерживать операционную систему с 2015 года, данное по можно установить на MacOS и выбранный вами дистрибутив Linux).

Контейнер — это файл содержащий приложения и все необходимые зависимости, а так же инструкции требующие для запуска приложения.  Аналог слова "Контейнер" — является IMG/образ, появляется он в результате выполнения операции "сборки".

Запуск образа

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

Отличие контейнера от виртуального сервера, заключается в том что внутри контейнера нет своей собственной операционной системы.

Пример операции сборки

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

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

Для чего же нужен Docker

Благодаря сборке приложения в контейнер вместе со всеми нужными библиотеками, можно не волноваться об правильной работоспособности данного контейнера на другом устройстве/сервере. Ведь если перед сборкой вы проверили приложение и оно работало правильно, значит оно так же и запустится установив контейнер на другом сервере.