- PVSM.RU - https://www.pvsm.ru -
В первой части [1] перевода серии материалов, посвящённых Docker, мы сделали общий обзор этой системы. В частности, мы говорили о том, почему технологии контейнеризации важны в наше время, о том, что такое контейнеры Docker, и о том, с чем их можно сравнить. Сегодня мы поговорим об экосистеме Docker и рассмотрим важные термины, с которыми вы можете столкнуться на пути изучения и использования Docker. Продолжив аналогию с разными вкусностями, представим, что наши термины — это пончики. Дюжина пончиков.
Я разбил термины, с которыми вы можете столкнуться в ходе работы с Docker, на две части. Думаю, это облегчит их запоминание. Первый блок терминов будет относиться к механизмам Docker. Второй — к средствам масштабирования решений, основанных на контейнерах.
Docker
Платформа Docker (Docker Platform [2]) — это программа, которая даёт нам возможность упаковывать приложения в контейнеры и запускать их на серверах. Платформа Docker позволяет помещать в контейнеры код и его зависимости. Как результат, системы, основанные на контейнерах, легко масштабировать, так как контейнеры можно переносить и воспроизводить.
Движок
Движок Docker (Docker Engine [3]) — это клиент-серверное приложение. Компания Docker разделила движок Docker на два продукта. Docker Community Edition [4] (CE) — это бесплатное ПО, во многом основанное на опенсорсных инструментах [5].
Вероятно, вы будете пользоваться именно этой версией Docker. Docker Enterprise [6] — это платная версия системы, дающая пользователям дополнительные возможности в области поддержки систем, управления ими и безопасности. Платная версия Docker даёт компании средства, необходимые для её существования.
Клиент Docker и другие механизмы экосистемы (взято из документации [7])
Клиент Docker (Docker Client [7]) — это основное средство, которое используют для взаимодействия с Docker. Так, при работе с интерфейсом командной строки Docker (Docker Command Line Interface [8], CLI), в терминал вводят команды, начинающиеся с ключевого слова docker
, обращаясь к клиенту. Затем клиент использует API Docker для отправки команд демону Docker.
Демон Docker (Docker Daemon [7]) — это сервер Docker, который ожидает запросов к API Docker. Демон Docker управляет образами, контейнерами, сетями и томами.
Тома
Тома Docker (Docker Volumes [9]) представляют собой наиболее предпочтительный механизм постоянного хранения данных, потребляемых или производимых приложениями.
Реестр Docker (Docker Registry [10]) представляет собой удалённую платформу, используемую для хранения образов Docker. В ходе работы с Docker образы отправляют в реестр и загружают из него. Подобный реестр может быть организован тем, кто пользуется Docker. Кроме того, поставщики облачных услуг могут поддерживать и собственные реестры. Например, это касается AWS [11] и Google Cloud [12].
Хаб Docker (Docker Hub [10]) — это самый крупный реестр образов Docker. Кроме того, именно этот реестр используется при работе с Docker по умолчанию. Пользоваться хабом Docker можно бесплатно.
Репозиторием Docker (Docker Repository [13]) называют набор образов Docker, обладающих одинаковыми именами и разными тегами. Теги — это идентификаторы образов.
Обычно в репозиториях хранятся разные версии одних и тех же образов. Например, Python [14] — это имя популярнейшего официального репозитория Docker на хабе Docker. А вот Python:3.7-slim — это версия образа с тегом 3.7-slim в репозитории Python. В реестр можно отправить как целый репозиторий, так и отдельный образ.
Теперь поговорим о терминах экосистемы Docker, имеющих отношение к масштабированию.
Следующие четыре термина имеют отношение к одновременному использованию нескольких контейнеров.
Сеть Docker (взято из документации [15])
Сетевые механизмы Docker (Docker Networking [15]) позволяют организовывать связь между контейнерами Docker. Соединённые с помощью сети контейнеры могут выполняться на одном и том же хосте или на разных хостах. Подробности о сетевой подсистеме Docker можно почитать здесь [16].
Docker Compose [17] — это инструмент, который упрощает развёртывание приложений, для работы которых требуется несколько контейнеров Docker. Docker Compose позволяет выполнять команды, описываемые в файле docker-compose.yml
. Эти команды можно выполнять столько раз, сколько потребуется. Интерфейс командной строки Docker Compose упрощает взаимодействие с многоконтейнерными приложениями. Этот инструмент устанавливается при установке Docker.
Рой пчёл
Docker Swarm [18] — это решение, предназначенное для управления контейнерными развёртываниями (то есть, как говорят, для оркестрации контейнеров). В этом [19] материале из официального учебного курса по Docker можно найти сведения о Docker Swarm. Мне хотелось бы порекомендовать вам не тратить время на изучение Docker Swarm в том случае, если у вас нет на то веской причины.
Сервисы Docker (Docker Services [20]) — это различные части распределённого приложения. Вот что о них говорится в документации [20]:
Сервисы — это всего лишь «контейнеры в продакшне». В пределах сервиса выполняется лишь один образ, но сервис определяет то, как именно выполняется образ. В частности, речь идёт о том, какие порты должны использоваться, сколько реплик контейнера должно выполняться для того, чтобы сервис обеспечивал бы необходимую вычислительную мощность, и так далее. Масштабирование сервисов предусматривает изменение количества экземпляров контейнера, в которых работает некая программа, благодаря чему сервису выделяется столько системных ресурсов, сколько ему требуется для решения некоей задачи.
Сервисы Docker позволяют масштабировать контейнеры в пределах нескольких демонов Docker, благодаря им существует и технология Docker Swarm.
Давайте, буквально в двух словах, повторим только что представленные вам термины:
Механизмы Docker:
Масштабирование:
Выше мы говорили о том, что рассмотрим дюжину терминов экосистемы Docker, сравнивая их с дюжиной пончиков. Мы рассмотрели уже 12 терминов, и, казалось бы, на этом можно и остановиться. Но мы, на всякий случай [21], добавим в наш список ещё один термин.
Вот, на всякий случай, ещё один пончик
Этот термин относится не к самой платформе Docker, а к технологии, которая очень часто используется совместно с Docker.
Kubernetes
Kubernetes [22] — это технология, которая позволяет автоматизировать развёртывание и масштабирование контейнеризированных приложений, а также управление ими. Это — бесспорный лидер рынка средств для оркестрации контейнеров. Если вам нужен инструмент для работы с группами контейнеров, для масштабирования решений, основанных на них, используйте не Docker Swarm, а Kubernetes. Kubernetes не является частью Docker. Они с Docker, скорее, похожи на лучших друзей.
Теперь, когда вы ознакомились с общими понятиями Docker и с терминологией, вы можете приступить к практическим экспериментам.
Помните, как в прошлый раз мы сравнивали платформу Docker с духовкой, которую устанавливают в кухне? Сейчас самое время установить Docker на вашей «кухне» и что-нибудь приготовить.
Docker можно запускать локально на Linux, Mac и Windows. Если вы пользуетесь Mac или Windows, вы можете установить свежую версию Docker Desktop отсюда [23]. Вместе с этой программой, кстати, устанавливается и Kubernetes. Если вы устанавливаете Docker на другой платформе, то загляните сюда [4] для того, чтобы найти подходящую версию.
После установки Docker взгляните на первые две части официального руководства [24].
В следующий раз мы продолжим разговор о Docker. В частности, поговорим о файлах Dockerfile.
Уважаемые читатели! Если, читая материалы этой серии, вы открываете для себя Docker, просим рассказать о том, как вы планируете использовать технологии контейнеризации приложений.
Автор: ru_vds
Источник [25]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/308695
Ссылки в тексте:
[1] первой части: https://habr.com/ru/company/ruvds/blog/438796/
[2] Docker Platform: https://docs.docker.com/engine/docker-overview/#the-docker-platform
[3] Docker Engine: https://www.docker.com/products/docker-engine
[4] Docker Community Edition: https://docs.docker.com/install/
[5] опенсорсных инструментах: https://opensource.stackexchange.com/questions/5436/is-docker-still-free-and-open-source
[6] Docker Enterprise: https://www.docker.com/products/docker-enterprise
[7] документации: https://docs.docker.com/engine/docker-overview/
[8] Docker Command Line Interface: https://docs.docker.com/engine/reference/commandline/cli/
[9] Docker Volumes: https://docs.docker.com/storage/volumes/
[10] Docker Registry: https://hub.docker.com/
[11] AWS: https://aws.amazon.com/ecr/
[12] Google Cloud: https://cloud.google.com/container-registry/
[13] Docker Repository: https://docs.docker.com/docker-hub/repos/
[14] Python: https://hub.docker.com/_/python
[15] документации: https://docs.docker.com/engine/tutorials/networkingcontainers/
[16] здесь: https://www.oreilly.com/learning/what-is-docker-networking
[17] Docker Compose: https://docs.docker.com/compose/
[18] Docker Swarm: https://docs.docker.com/engine/swarm/
[19] этом: https://docs.docker.com/get-started/#recap-and-cheat-sheet
[20] Docker Services: https://docs.docker.com/get-started/part3/#introduction
[21] на всякий случай: https://www.britannica.com/story/why-is-a-bakers-dozen-13
[22] Kubernetes: https://kubernetes.io/
[23] отсюда: https://www.docker.com/products/docker-desktop
[24] официального руководства: https://docs.docker.com/get-started/
[25] Источник: https://habr.com/ru/post/439978/?utm_source=habrahabr&utm_medium=rss&utm_campaign=439978
Нажмите здесь для печати.