Что такое Docker? – спрашивают молодые DevOps инженеры. Почему именно они?
Потому что Docker — это opensource программное обеспечение, которое в
основном применяется при программировании, тестировании и развертывании web-
приложений, в системах, где поддерживается контейнеризация. Поэтому он в
основном применяется в DevOps.
Docker — это более эффективное применение ресурсов системы, а также:
- быстрый запуск разработанного продукта;
- удобное масштабирование программ;
- качественный перенос продукта в другие среды с поддержанием заявленной работоспособности.
Docker — это популярный инструментарий для управления виртуально созданными
контейнерами, который выполняет большой список задач, завязанных на работе с
контейнерами:
- создает контейнеры;
- размещает в них web-приложения;
- управляет всеми процессами в контейнерах;
- помогает тестировать ПО целиком или только его отдельные компоненты.
Что такое Docker?
История создания Докер началась еще в 2008-м году. По свободной лицензии эта
программа стала распространяться только в 2013-м году — это было включение
Докер в дистрибутив Red Hat Enterprise Linux 6.5.
Докер разрабатывался специально для Линукс. Если нужно его использовать в
других системах, то для этого есть специальные утилиты для запуска в других
операционных системах:
- Kitematic;
- Docker Machine.
Докер упаковывает готовое приложение по отдельным контейнерам(еще их
называют — изолированными средами). Каждая такая среда содержит в себе все
необходимое для функционирования приложения. Это, в свою очередь, дает
возможность на едином хосте запускать сразу большое количество различных
приложений.
Docker — это уникальные преимущества
Среди всех подобных решений, его действительно выделяют собственные
уникальные преимущества:
- Не требует много ресурсов системы. Запуск контейнеров не задействует все
ресурсы операционной системы, а лишь ядро хоста и отделяет приложение на
уровне хоста. И поэтому Докер расходует меньше ресурсов, чем виртуальная
машина, которая работает со всей ОС. - Позволяет быстро развернуть приложение. Докер содержит в себе несколько
готовых шаблонов для развертывания программ, поэтому устанавливать что-то еще
не нужно будет. - Удобно скрывает процессы. Каждый контейнер можно обрабатывать разными
методами и при этом скрывать фоновые процессы. - Работает с непроверенным кодом. Из-за того, что Докер изолирует отдельно
каждый контейнер — это позволяет запускать даже потенциально опасный код.
Такой запуск не нанесет вреда операционной системе. - Позволяет легко масштабировать проект. Для того чтобы масштабировать любое
приложение, нужно всего лишь внедрить новые контейнеры. - Удобно запускает приложение. Когда приложение находится внутри контейнера, то
его запуск можно осуществить на любом докер-хосте. - Оптимизированное использование файловой системы. Докер создает образ
программы, который состоит из определенных слоев — это позволяет эффективно
применять файловую систему.
Несмотря на все преимущества, у Докер есть один важный недостаток: в нем не
получится запускать приложения, предназначенные для разных операционных
систем: к примеру, для Linux и Windows.
Из чего состоит Docker?
Докер состоит из нескольких основных компонентов. Их нужно знать и понимать
взаимосвязь между ними, чтобы эффективней применять сам Докер.
Docker — это следующие компоненты:
- Docker-daemon. Осуществляет контроль за Докер-компонентами: сеть,
хранилище, образ, контейнер и налаживает связь с другими daemon. - Докер-клиент. Это пользовательских интерфейс, чтобы было легче
взаимодействовать с daemon. - Docker-image. Содержит в себе конфигурации для создания контейнеров.
- Докер-файл. Инструкция, как собирается образ.
- Docker-container. Выделенная отдельная изолированная среда для развертывания
приложений, которая содержит в себе все необходимые для этого инструменты. - Volume. Это образ системы файлов для контроля операций чтения и записи.
- Реестр. Это отдельный сервер, в котором хранятся докер-образы.
- Центр Докер. Часть реестра для запуска докер-image. Также он несет
ответственность за связь с Github или Bitbucket. - Контейнер Azure. Часть реестра, которая функционирует с образом и компонентом
в директории Азур. - Доверенный реестр Докер. Часть общего реестра, которая используется при
установке Docker на персональном компьютере. - Docker-hub. Это «склад», где хранятся различные образы программного
обеспечения. - Докер-хост. Непосредственное «место», где происходит запуск контейнеров.
- Docker-networks. Помогает наладить общий интерфейс по сети между всеми
запущенными контейнерами.
Возможно вам будет интересно почитать статью “Всплывающая подсказка CSS Краткий гайд”
Заключение
Docker — это инструмент, который должен знать каждый современный разработчик
приложений. Он обладает широкой функциональностью и определенным удобством
использования. Его легко освоить и начать использовать даже новичку, так как для
этого не нужно обладать какими-то определенными навыки. У Docker достаточно
простой синтаксис.
Несмотря на то, что Docker разрабатывался под Linux, его также можно
инсталлировать и на Windows. Поэтому широта применения этого ПО ни чем не
ограничивается.