24.05.2021

Контейнеризация в Docker

Запуск Docker в 2013 году произвел революцию в разработке приложений. Это контейнерная технология, которая делает развертывание и управление проектами гибким и простым. Главное ее преимущество – изолированная работа приложений при использовании несколькими контейнерами одного ядра ОС. Контейнеры виртуализируют операционную систему, а не оборудование.


Что такое технология Docker


Docker запускает процесс, внутри которого, как в матрице, выполняется код приложения. Говоря проще, он изолируется от других процессов, что экономит ресурсы, устраняет технологические и организационные риски. У технологии Docker простая программная архитектура, которая включает:

  • сервер Docker Daemon process;
  • командную строку или CLI;
  • REST API – описывает взаимодействие программ с сервером.

Технология разрабатывалась под операционную систему Linux, но также поддерживается Windows 10. Чтобы воспользоваться Docker на более ранних версиях ОС, необходимо установить Docker Toolbox. Этот набор инструментов весит немного, быстро и просто инсталлируется – достаточно следовать инструкциям.

Для управления докеризированными хостами (теми, на которых установлен Докер) понадобится утилита Docker Machine. Она создается командой create, просматривается при помощи команды docker-machine ls. Помещаются процессы в виртуальные контейнеры. Они взаимодействуют по сетевому адресу. Это имитация обращения к другой физической машине.

Виртуальные машины – это абстракция физического оборудования, которая делит один сервер на множество сегментов. Гипервизор позволяет запускать несколько виртуальных машин на одном компьютере. Контейнер (стандартная единица программного обеспечения), где выполняется изолируемое приложение, описывается с помощью докерфайла или пакета. Он содержит все необходимое для запуска процесса:

  • код;
  • системные инструменты;
  • окружение;
  • библиотеки;
  • настройки.

Докерфайл – текстовый файл с прописанными командами. Они исполняются везде, где установлен Docker: на ПК и удаленных серверах. Их можно хранить на съемных носителях и устанавливать с них.


Преимущества технологии Docker


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

  • очень легкая;
  • обрабатывает нескольких приложений без дополнительной нагрузки, делает сервера более эффективными;
  • уменьшает риск конфликта между языками, библиотеками или фреймворками;
  • поддерживает все инструменты разработки, включая GitHub;
  • дает дополнительную гибкость виртуальным машинам;
  • гарантирует, что приложение не получит доступа к другим процессам в системе.

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


Зачем нужна контейнеризация в Docker


Технология сокращает затраты и риски при работе с приложениями (разработка, управление, защита, тестирование) без переписывания кода. Это эффективный инструмент адаптации к технологическим изменениям, минимизации ущерба, оперативной нейтрализации последствий системных сбоев.

Docker упрощает работу с масштабными проектами с помощью персонализации и контроля доступа к контейнерам. Журнал аудита Docker Hub позволяет отслеживать активность разработчиков.

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