Что такое Docker?

Сегодня хотелось бы поднять интересную тему, а именно, что такое Docker и зачем его использовать?

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

Зачастую докер используют разработчики.

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

Давайте ближе рассмотрим, как работает докер.

Программа упаковывает приложение и все его дополнения (код, библиотека и зависимости) в виртуальный контейнер, который может работать на любом сервере Linux.

Docker состоит из нескольких элементов:

  • Daemon - его используют для создания, запуска и управления контейнерами;
  • Высокоуровневый API - позволяет пользователю общаться с Daemon;
  • CLI - командный интерфейс, который делает все вышеперечисленное доступным.

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

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

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

Как создать контейнер?

Когда у вас подготовлен docker image, тогда можно создать из него контейнер на любом физическом сервере, где установлен докер.

При создании контейнера из image, его можно параметризовать (передавать докеру переменные окружения, которые он использует при создании контейнера). Так вы сможете передавать докеру переменные, которые он использует при создании контейнера из image.

Использование докера подходит для решения таких задач:

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