Просто о Docker: практическое руководство для абсолютных новичков

Если вы планируете начать свою карьеру в DevOps или уже работаете в этой сфере, а в вашем резюме все еще нет Docker, то пришло время узнать о нем больше. Оказывается, это один из обязательных навыков для любого профессионала DevOps. В этом посте попробую представить Docker самым простым способом. Прежде чем мы углубимся и начнем изучать Docker, перечислю, какие темы будут расмотрены в рамках данного руководства для начинающих.

Что такое Docker?

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

Первое издание Docker было выпущено в 2013 году.

Docker разработан с использованием языка программирования Go.

Глядя на богатый набор функций, которые может предложить Docker, он был широко принят некоторыми ведущими мировыми организациями и университетами, такими как Visa и PayPal для управления своими приложения.

Теперь давайте попробуем разобраться в проблеме, которую предлагает нам решить Docker.

Проблема

Допустим, у вас есть три разных приложения на основе Python, котоые вы планируете разместить на одном сервере (который может быть как физическим, так и виртуальным). Каждое из этих приложений использует разные версии Python, а также связанные библиотеки и зависимости, которые отличаются от одного приложения к другому. Поскольку у нас не может быть установлено несколько версий Python на одном компьютере, это не позволяет нам размещать все три прилжения на одном компьютере.

Решение

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

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

Теперь давайте посмотрим, как Docker может быть эффективным и экономичным решением этой проблемы. Чтобы понять это, нам нужно посмотреть, как именно функционирует Docker.

Docker Host

Компьютер, на котором установлен и работает Docker, обычно называется Docker Host или просто Host.

Кстати, лучшим решением для установки Docker Host будет выделенный (dedicated) сервер – https://deltahost.ua/dedicated.html.

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

В Docker-контейнере не установлена и не работает операционная система. Но он будет иметь виртуальную копию таблицы процессов, сетевых интерфейсов и точек монтирования файловой системы. Они унаследуются от операционной системы хоста, на котором размещен и работает контейнер.

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

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

Чтобы понять, насколько полезен Docker для решения этой проблемы, необходимо так же рассмотреть преимущества и недостатки использования Docker.

Проще говоря, Docker виртуализирует операционную систему хоста, на котором он установлен и работает вместо виртуализации аппаратных компонентов.

Преимущества и недостатки использования Docker

Преимущества использования Docker

Некоторые из ключевых преимуществ использования Docker перечислены ниже:

  • Docker поддерживает несколько приложений с различными требованиями к приложениям и зависимостями, которые должны быть размещены вместе на одном хосте, если они имеют одинаковые требования к операционной системе.
  • Хранение оптимизировано. Большое количество приложений может быть размещено на одном хосте, так как контейнеры обычно имеют размер несколько мегабайт и занимают очень мало дискового пространства.
  • Надёжность. На контейнере не установлена операционная система. Таким образом, он потребляет очень мало памяти по сравнению с виртуальной машиной (на которой будет установлена и запущена целая операционная система). Это также сокращает время загрузки до нескольких секунд по сравнению с парой минут, необходимых для загрузки виртуальной машины.
  • Уменьшает затраты. Docker менее требователен к оборудованию, необходимому для его запуска.

Недостатки использования Docker

  • Приложения с различными требованиями к операционной системе не могут быть размещены вместе на одном Docker Host.

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

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.