Написать пост

Основные концепции Docker на простых примерах из жизни

Аватар Никита Прияцелюк

Docker — крайне полезная платформа, которая всё больше используется при разработке. Разбираемся, что она из себя представляет.

Обложка поста Основные концепции Docker на простых примерах из жизни

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

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

На что это похоже?

Контейнер

Основные концепции Docker на простых примерах из жизни 1
 Обычный контейнер

Как и обычный пластиковый контейнер, Docker-контейнер обладает следующими характеристиками:

  1. Хранит вещи.
  2. Портативен — вы можете пользоваться им и на вашем компьютере, и на компьютере коллеги, и в облачных сервисах, таких как Amazon Web Services.
  3. Имеет удобный интерфейс — у нашего пластикового контейнера есть крышка, разделяющая вещи внутри него и снаружи. У Docker’а точно так же есть некоторые механизмы, позволяющие взаимодействовать с внешним миром. У него есть порты для взаимодействия через браузер. Вы можете настроить его для работы с данными через консоль.
  4. Может быть создан повторно — вы можете взять другой пустой пластиковый контейнер, если он вам понадобится, поскольку есть фабрики, которые выпускают их тысячами. В случае с Docker-контейнером сервисы и пользователи хранят образы контейнеров, которые позволяют быстро развернуть необходимую среду.

ПО

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

Пока Docker-контейнер работает, действует некая программа, запущенная внутри него. Например, код в Docker может отправлять вам содержимое страницы, которую вы просматриваете прямо сейчас. Или брать вашу голосовую команду для Amazon Alexa и декодировать её, чтобы использовать в другой программе в другом Docker.

С Docker вы можете запускать несколько контейнеров одновременно. В конце концов Docker, как любая другая программа, может быть запущен, проверен, остановлен и удалён.

Некоторые термины

Виртуальная машина

Docker чем-то схож с виртуальной машиной. Но всё же это больше средство виртуализации процессов, а не систем.

Образ

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

Основные концепции Docker на простых примерах из жизни 2
Формочки для выпечки

Образ содержит в себе Docker-файл, все необходимые зависимости для вашего приложения и непосредственно само ваше приложение.

Docker-файл

Docker-файл — инструкции для Docker по настройке и запуску приложений. В Docker-файле находится описание базового образа, на котором построен контейнер. Одни из самых популярных образов — Python, Ubuntu и Alpine.

С помощью дополнительных слоёв в Docker-файле можно добавить необходимое ПО. Например, можно указать, что Docker’у нужно добавить библиотеки NumPy, Pandas и Scikit-learn.

Docker-контейнер

Docker-образ плюс команда docker run image_name создадут и запустят контейнер по образу.

Реестр контейнеров

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

Приготовление

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

Рецепт и ингредиенты— необходимые условия для приготовления пиццы. В экосистеме Docker — это Docker-образ.

Рецепт (Docker-файл) описывает действия:

  • Тесто уже готово и неизменно — это базовый Ubuntu-образ. Он на первом месте.
  • Затем мы добавляем немного сыра — следующий слой нашей пиццы. Здесь мы подключаем необходимые библиотеки.
  • И в самом конце мы добавляем щепотку базилика. Она как код, который вы написали для работы приложения.

Итак, всё подготовлено, приступим.

Основные концепции Docker на простых примерах из жизни 4
  • Духовка, в которой готовится пицца, — это Docker-платформа. Вы устанавливаете духовку, когда въезжаете в дом, и уже можете в ней печь. Так и с Docker: вы устанавливаете его к себе на компьютер и можете создавать контейнеры.
  • Чтобы включить духовку, вы нажимаете кнопку. Команда docker run [] запускает контейнер.
  • Приготовленная пицца — это Docker-контейнер.
  • Поедание пиццы — это использование вашего приложения.

Как и приготовление пиццы, создание приложения в Docker требует сил и времени. Но результат, как правило, оправдывает эти вложения.

Смотрите также:

Следите за новыми постами
Следите за новыми постами по любимым темам
37К открытий37К показов