Современная контейнерная революция началась с Docker и его одноименного Docker Engine. Docker Engine - это среда выполнения и инструментальные средства, которые позволяют контейнерам, определенным в файле docker, запускаться поверх операционной системы хоста в изолированном разделе «контейнер».
«Мы здесь из-за механизма докера», - сказал Майнк Танежа, старший менеджер по продукции в Docker, на сессии на конференции Dockercon Europe.
Docker Engine в 2018 году - это не та технология, которая была при первом запуске Docker. Скорее, он значительно изменился за последние годы и теперь основан на времени выполнения контейнерных контейнеров в ядре.
Так что же на самом деле представляет собой современная архитектура Docker Engine?
Согласно приведенному выше изображению, самый базовый уровень Docker Engine на сегодняшний день - это runc, который является реализацией с открытым исходным кодом среды выполнения Open Container Initiative (OCI). Поверх runc находится контейнерный проект, который в настоящее время размещается в Cloud Native Computing Foundation (CNCF), который также является домом для проекта контейнерной оркестровки Kubernetes.
Помимо простой среды выполнения, позволяющей запускать контейнерные приложения, Docker Engine также включает SwarmKit, который является собственной системой оркестровки контейнеров Docker. Кроме того, Docker Content Trust, основанный на проекте нотариуса CNCF, является частью механизма и предоставляет систему для криптографической подписи и авторизации изображений контейнеров.
Работа в сети напрямую включена через плагин libnetwork, а управление хранилищем является непосредственно интегрированной функцией, как и управление журналами.
Внутри самого контейнера есть три основных элемента: выполнение контейнера, управление изображениями и файловая система контейнера.
Самая последняя версия containerd, входящая в состав Docker Engine, - это версия 1.2. Среди функций, добавленных в containerd 1.2, - оболочка времени выполнения, которая позволяет управлять различными средами выполнения из containerd.
В последнем обновлении Docker Engine 18.09 Community Edition было несколько улучшений сборки, в том числе повышение производительности, позволяющее выполнять параллельные этапы сборки приложения.
Кроме того, Docker 18.09 теперь поддерживает секреты времени сборки. Секреты - это определенные пароли и токены доступа, необходимые для разных сервисов. С секретами времени сборки теперь есть возможность предоставлять секреты контейнеру во время сборки, когда это необходимо. Секреты никогда не хранятся непосредственно в контейнере, и секреты также не передаются остальной части кластера контейнера.
Стабильная версия Docker Engine Community Edition выпускается два раза в год, а версия Enterprise - один раз в год.
Самым последним выпуском Docker Engine CE является версия 18.09, а следующие запланированные выпуски запланированы на март 2018 года с Docker Engine CE 19.03, который также соответствует следующему обновлению Enterprise Edition.
Каждый выпуск Docker Engine CE поддерживается в течение одного месяца после следующего выпуска, а каждое обновление Enterprise Edition поддерживается в течение 18 месяцев после следующего выпуска.