Основные концепции Docker на простых примерах из жизни
Docker — крайне полезная платформа, которая всё больше используется при разработке. Разбираемся, что она из себя представляет.
38К открытий38К показов
Контейнеры чрезвычайно полезны с точки зрения безопасности, воспроизводимости и масштабируемости при разработке ПО и обработке данных. Их использование облегчает жизнь многим разработчикам.
Для разработки, упаковки и запуска приложений в контейнере необходимо специальное ПО. Docker — одно из самых популярных решений для работы с контейнерами.
На что это похоже?
Контейнер
Как и обычный пластиковый контейнер, Docker-контейнер обладает следующими характеристиками:
- Хранит вещи.
- Портативен — вы можете пользоваться им и на вашем компьютере, и на компьютере коллеги, и в облачных сервисах, таких как Amazon Web Services.
- Имеет удобный интерфейс — у нашего пластикового контейнера есть крышка, разделяющая вещи внутри него и снаружи. У Docker’а точно так же есть некоторые механизмы, позволяющие взаимодействовать с внешним миром. У него есть порты для взаимодействия через браузер. Вы можете настроить его для работы с данными через консоль.
- Может быть создан повторно — вы можете взять другой пустой пластиковый контейнер, если он вам понадобится, поскольку есть фабрики, которые выпускают их тысячами. В случае с Docker-контейнером сервисы и пользователи хранят образы контейнеров, которые позволяют быстро развернуть необходимую среду.
ПО
Docker-контейнер может быть рассмотрен как программа. То есть Docker-контейнер — это набор инструкций, который управляет другими кусочками механизма.
Пока Docker-контейнер работает, действует некая программа, запущенная внутри него. Например, код в Docker может отправлять вам содержимое страницы, которую вы просматриваете прямо сейчас. Или брать вашу голосовую команду для Amazon Alexa и декодировать её, чтобы использовать в другой программе в другом Docker.
С Docker вы можете запускать несколько контейнеров одновременно. В конце концов Docker, как любая другая программа, может быть запущен, проверен, остановлен и удалён.
Некоторые термины
Виртуальная машина
Docker чем-то схож с виртуальной машиной. Но всё же это больше средство виртуализации процессов, а не систем.
Образ
Docker-образы похожи на чертежи или формочки для выпечки. Это некий шаблон, который помогает воспроизводить одинаковый результат.
Образ содержит в себе Docker-файл, все необходимые зависимости для вашего приложения и непосредственно само ваше приложение.
Docker-файл
Docker-файл — инструкции для Docker по настройке и запуску приложений. В Docker-файле находится описание базового образа, на котором построен контейнер. Одни из самых популярных образов — Python, Ubuntu и Alpine.
С помощью дополнительных слоёв в Docker-файле можно добавить необходимое ПО. Например, можно указать, что Docker’у нужно добавить библиотеки NumPy, Pandas и Scikit-learn.
Docker-контейнер
Docker-образ плюс команда docker run image_name
создадут и запустят контейнер по образу.
Реестр контейнеров
Если вы хотите, чтобы и другие люди могли создавать контейнеры по вашему образу, вы можете отправить свой образ в реестр контейнеров. Docker Hub — самый большой и чаще всего используемый реестр.
Приготовление
- Docker-файл описывает, что нужно делать с контейнером. Это похоже на рецепт приготовления блюда.
- Docker-файл содержит слои. Если проводить аналогию с пиццей, то слоями будут тесто, сыр и приправы, т. е. ингредиенты.
Рецепт и ингредиенты— необходимые условия для приготовления пиццы. В экосистеме Docker — это Docker-образ.
Рецепт (Docker-файл) описывает действия:
- Тесто уже готово и неизменно — это базовый Ubuntu-образ. Он на первом месте.
- Затем мы добавляем немного сыра — следующий слой нашей пиццы. Здесь мы подключаем необходимые библиотеки.
- И в самом конце мы добавляем щепотку базилика. Она как код, который вы написали для работы приложения.
Итак, всё подготовлено, приступим.
- Духовка, в которой готовится пицца, — это Docker-платформа. Вы устанавливаете духовку, когда въезжаете в дом, и уже можете в ней печь. Так и с Docker: вы устанавливаете его к себе на компьютер и можете создавать контейнеры.
- Чтобы включить духовку, вы нажимаете кнопку. Команда
docker run []
запускает контейнер. - Приготовленная пицца — это Docker-контейнер.
- Поедание пиццы — это использование вашего приложения.
Как и приготовление пиццы, создание приложения в Docker требует сил и времени. Но результат, как правило, оправдывает эти вложения.
Смотрите также:
38К открытий38К показов