Docker — лучший инструмент для контейнеризации приложений

Docker является одной из самых современных и прогрессивных технологий для создания контейнеров в операционных системах Linux. В основе технологии лежат несколько относительно новых механизмов ядра Linux — cgroups и namespaces. Control Groups позволяет ограничивать и изолировать для групп процессов такие ресурсы как: процессор, сеть, память и ввод-вывод. Второй механизм это изоляция пространств имён (namespaces), который собственно и позволяет изолировать процесс от остальных процессов операционной системы.

Похожее изображение

Почему Docker так популярен?

Идея докера не нова. Точно такой же стек технологий для виртуализации и изоляции процессов используется и в LXC. Кстати говоря, первые версии docker работали с namespaces и cgroups не напрямую, а через LXC-библиотеки. Немного ранее на пике популярности была OpenVZ контейнеризация. На графике ниже видна динамика популярности самых распространённых систем виртуализации и контейнеризации. Docker нельзя напрямую сравнивать с технологиями от VMware, однако, видно как лихо докер стал завоёвывать популярность.

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

На что способен Docker

На самом деле юз-кейсов у докера достаточно много, рассмотрим основные. И начнём от простого к сложному.

Кто успешно внедрил Docker

Когда пора переходить на Docker

Как начать изучение и внедрение Docker

Безопасность в докер-контейнерах

Проблемы внедрения и эксплуатации Docker

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

Так, например, на CentOS 6 нельзя поставить docker-compose, т.к. он требует версию докера не поддерживающую эту версию linux-ядра.

Вот небольшой список проблем и способы их решения: