DevOps

Что такое Docker?

Не используете Docker? Вы его просто не пробовали! Давайте это исправим 😉

all-top

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

Программисты хотят работать с простыми вещами, чтобы не приходилось до кучи становиться еще и системными администраторами. *

Зачем нужен докер

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

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

Порой инфраструктура проектов может быть очень специфичной, а инструкция по настройке — очень скудной или, как вариант, отсутствовать вовсе. Здесь запросто можно потратить много времени впустую. В такие ситуации часто попадают новые члены команды (особенно, если они работают удаленно), компании, которые берут на поддержку существующий проект.

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

Docker нас выручит!


Что такое Docker?

Если кратко, Docker — это технология, которая позволяет упаковать приложение в изолированный контейнер. C Docker можно не устанавливать и не конфигурировать все требуемое ПО на своей локальный машине, не переживать о том, что оно может что-то нарушить. *

Для начала работы с Docker вы можете создать “инструкцию по сборке” определенного окружения (например, Debian+Apache+modPHP+PostgreSQL или Ubuntu+nginx+PHP-fpm+MySQL). По инструкции создать “заготовку” системы и после использовать ее столько раз, сколько потребуется. Можно даже поделиться такой “заготовкой” с коллегами, которые работают с вами в одном проекте и которым нужна точно такая же среда.

Такую “заготовку” называют образом или Docker image. Образ создается по инструкциям, которые записываются в специальный файл — Dockerfile. Подробнее в статье “Создание Docker образов”.

После того, как у вас есть образ, Docker может запустить на основе образа контейнер.

Контейнер — это самостоятельная “единица” внутри текущей операционной системы. Он состоит из операционной системы, установленных расширений, пользовательских файлов, также контейнер может запускать процессы.

Чем-то Docker похож на виртуальную машину, с той разницей, что работает “поверх” операционной системы хост-машины. Такой тип виртуализации называют контейнерной.

Еще одна важная и клевая штука — Docker hub. Это централизованный репозиторий Docker-образов. Там ты найдёшь огромное количество уже готовых к использованию образов на продакшене. Нужен образ, запускающий Redis? Нужен образ, запускающий Tomcat? Просто ищешь их в Docker hub, запускаешь, и готовы работающие приложения.

В Docker hub представлены образы как от самой коман­ды Docker, так и от энтузиастов. Если тебе нужно какое-то популярное приложение, например MySQL, ты, скорее всего, найдешь тысячи разных образов для него — MySQL 5.1, MySQL 5.2, … Среди них в первых строках, как правило, находится пара подтвержденных командой Docker-образов. Любое более-менее популярное приложение имеет ряд проверенных контейнеров, которым ты, скорее всего, можешь доверять. *


Попробуйте сами

Продолжить знакомство с Докер можно в статьях:
Docker. Создание образов
Docker. Запуск контейнеров


* В статье я привожу наиболее интересные, на мой взгляд, выдержки перевода интервью с Фабрицио Соппельса.

 

 

Поделитесь с друзьями или сохраните себе
  •  
  •  
  •  
  •  
  •  
  •  
  •  

4 Comments

  1. Максим

    Docker относится к рубрике DevOps? Прочитал все три статьи про Docker, очень крутые! Как и вся твоя деятельность!) Ждем продолжения по Docker ^_^

    Reply

Напишите комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


десять − три =