Выпуск Docker 1.7. Docker и CoreOS объединили усилия в разработке единого формата контейнеров
Представлен релиз инструментария для управления изолированными Linux-контейнерами Docker 1.7, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. В частности, Docker позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.
Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Для создания контейнеров предлагается использовать libcontainer (обёртка над namespaces и cgroups), также возможно применение lxc, libvirt, systemd-nspawn и других систем изоляции. Для формирования контейнера достаточно загрузить базовый образ окружения (docker pull base), после чего можно запускать в изолированных окружениях произвольные приложения (например, для запуска bash можно выполнить «docker run -i -t base /bin/bash»).
Из добавленных в Docker 1.7 новшеств можно отметить:
Полностью переработан код организации сетевого взаимодействия — связанный с настройкой сети код вынесен в несколько отдельных библиотек, которые можно использовать в сторонних проектах.
Интеграция драйвера для хранения образов в файловой системе ZFS;
С целью повышения качества кода полностью переписана система разделов хранения;
Проведён внутренний рефакторинг, который помог ускорить работу многих компонентов, повысил их стабильность и упростил сопровождение;
В команду exec добавлены опции -u|--user для задания владельца нового процесса;
Добавлена поддержка настройки квоты CPU для планировщика CFS (Completely Fair Scheduler) через опцию »--cpu-quota»;
Реализованы средства для управления приоритетом ввода/вывода, включаемые через опцию »--blkio-weight»;
Параллельно с основной версией выпущен экспериментальный вариант релиза Docker 1.7, в котором представлены изменения, требующие обсуждения перед окончательным включением в стабильную ветку. В частности, в экспериментальный релиз включены значительные изменения в организации работы сети — контейнеры теперь соединяются между собой через разные хосты. Также представлен новый CLI-интерфейс настройки сети, который предоставляет более гибкие возможности в организации сетевого взаимодействия.
Вторым важным новшеством экспериментального релиза является поддержка плагинов, выполняемых в форме отдельных процессов-обрабочиков. Первыми реализованы плагины для поддержки бесшовного подключения контейнеров к различным сетевым системам и плагины для организации хранилищ, например, позволяющие работать с сетевыми хранилищами, такими как Flocker.
Представлен runC — легковесный универсальный runtime для обеспечения работы контейнеров. runC предоставляет обособленный набор компонентов для запуска контейнеров на широком спектре систем, позволяя обойтись только наличием платформы Docker без других внешних зависимостей — поддержка различных технологий изоляции будет уже встроена в runtime контейнера. Для организации работы с контейнерами runC поддерживает пространства имён Linux (namespaces), различные средства повышения безопасности Linux (SELinux, Apparmor, seccomp, cgroups, capability, pivot_root, сброс uid/gid), live-миграцию (используется CRIU), возможности создания контейнеров в Windows 10, переносимые профили производительности (предоставлены Google). В будущем ожидается поддержка платформ ARM, Power и SPARC, различных аппаратных возможностей (DPDK, sr-iov, tpm, secure enclave).
Выпуск инструмента Machine 0.3, предназначенного для быстрого развёртывание хостов в гостевых окружениях систем виртуализации VirtualBox, VMware, AWS, Digital Ocean и Microsoft Azure. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером. В новой версии добавлена возможность передачи настроек демонам Engine и Swarm, реализована поддержка операционных систем Red Hat Enterprise Linux, Fedora, Debian и RancherOS, возможность импорта виртуальных машин, созданных при помощи инструментария Boot2Docker, поддержка копирования файлов между хостами, добавлен новый драйвер generic для настройки Docker на любом хосте по SSH.
Выпуск инструмента Swarm 0.3, предоставляющего средства кластеризации для упакованных в контейнеры приложений. Swar даёт возможность управлять кластером из нескольких хостов Docker (например, созданных с использованием Docker Machine) в форме работы с одним виртуальным хостом. Так как Swarm использует штатный Docker API, он может применяться для управления и другими поддерживающими данный API инструментами, такими как dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins. В новой версии обеспечена интеграция с Mesos («docker run» теперь можно запустить в кластере Mesos), возможность запуска нескольких экземпляров первичных серверов Swarm для создания отказоустойчивых систем, полная поддержка Docker API (всё что может быть запущено в Engine теперь можно запустить в Swarm), значительное повышение стабильности.
Выпуск инструмента Docker Compose 1.3, позволяющего организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm. В новой версии добавлена возможность пересоздания только изменённых контейнеров (--x-smart-recreate), добавлена поддержка определения меток для привязки сервисов, в файл конфигурации docker-compose.yml добавлены новые опции dockerfile, labels, extra_hosts, pid, cpuset, read_only, security_opt и log_driver.
Одновременно сообщается о формировании под эгидой организации Linux Foundation группы Open Container Project, которая займётся продвижением единого формата контейнеров, который будет поддерживаться различными инструментариями, а также развитием универсального runtime для запуска контейнеров, формируемого на основе libcontainer. В итоге пользователи получат возможность упаковывать свои приложения в универсальные контейнеры, которые будут работать с любым инструментарием, включая Docker, rkt, Kurma и Jetpack.
Создаваемый стандарт будет разработан сообща и изначально не будет привязан к решениям отдельных вендоров, а также будет учитывать повышенные требования к безопасности. В состав группы в том числе вошли давние конкуренты — Docker и CoreOS, ранее пытавшиеся продвигать собственные форматы контейнеров, но теперь решившие объединить свои усилия. В частности, проект CoreOS продвигал на позицию стандарта спецификациею App Container, нацеленную на создание универсального переносимого формата контейнеров и поддержанную Google, Red Hat, Apcera и VMware. Кроме Docker и CoreOS, в состав группы Open Container Project также вошли компании Microsoft, Amazon Web Services, Cisco, Google, EMC, Fujitsu, HP, Huawei, IBM, Intel, Red Hat и VMware.
Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Для создания контейнеров предлагается использовать libcontainer (обёртка над namespaces и cgroups), также возможно применение lxc, libvirt, systemd-nspawn и других систем изоляции. Для формирования контейнера достаточно загрузить базовый образ окружения (docker pull base), после чего можно запускать в изолированных окружениях произвольные приложения (например, для запуска bash можно выполнить «docker run -i -t base /bin/bash»).
Из добавленных в Docker 1.7 новшеств можно отметить:
Полностью переработан код организации сетевого взаимодействия — связанный с настройкой сети код вынесен в несколько отдельных библиотек, которые можно использовать в сторонних проектах.
Интеграция драйвера для хранения образов в файловой системе ZFS;
С целью повышения качества кода полностью переписана система разделов хранения;
Проведён внутренний рефакторинг, который помог ускорить работу многих компонентов, повысил их стабильность и упростил сопровождение;
В команду exec добавлены опции -u|--user для задания владельца нового процесса;
Добавлена поддержка настройки квоты CPU для планировщика CFS (Completely Fair Scheduler) через опцию »--cpu-quota»;
Реализованы средства для управления приоритетом ввода/вывода, включаемые через опцию »--blkio-weight»;
Параллельно с основной версией выпущен экспериментальный вариант релиза Docker 1.7, в котором представлены изменения, требующие обсуждения перед окончательным включением в стабильную ветку. В частности, в экспериментальный релиз включены значительные изменения в организации работы сети — контейнеры теперь соединяются между собой через разные хосты. Также представлен новый CLI-интерфейс настройки сети, который предоставляет более гибкие возможности в организации сетевого взаимодействия.
Вторым важным новшеством экспериментального релиза является поддержка плагинов, выполняемых в форме отдельных процессов-обрабочиков. Первыми реализованы плагины для поддержки бесшовного подключения контейнеров к различным сетевым системам и плагины для организации хранилищ, например, позволяющие работать с сетевыми хранилищами, такими как Flocker.
Представлен runC — легковесный универсальный runtime для обеспечения работы контейнеров. runC предоставляет обособленный набор компонентов для запуска контейнеров на широком спектре систем, позволяя обойтись только наличием платформы Docker без других внешних зависимостей — поддержка различных технологий изоляции будет уже встроена в runtime контейнера. Для организации работы с контейнерами runC поддерживает пространства имён Linux (namespaces), различные средства повышения безопасности Linux (SELinux, Apparmor, seccomp, cgroups, capability, pivot_root, сброс uid/gid), live-миграцию (используется CRIU), возможности создания контейнеров в Windows 10, переносимые профили производительности (предоставлены Google). В будущем ожидается поддержка платформ ARM, Power и SPARC, различных аппаратных возможностей (DPDK, sr-iov, tpm, secure enclave).
Выпуск инструмента Machine 0.3, предназначенного для быстрого развёртывание хостов в гостевых окружениях систем виртуализации VirtualBox, VMware, AWS, Digital Ocean и Microsoft Azure. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером. В новой версии добавлена возможность передачи настроек демонам Engine и Swarm, реализована поддержка операционных систем Red Hat Enterprise Linux, Fedora, Debian и RancherOS, возможность импорта виртуальных машин, созданных при помощи инструментария Boot2Docker, поддержка копирования файлов между хостами, добавлен новый драйвер generic для настройки Docker на любом хосте по SSH.
Выпуск инструмента Swarm 0.3, предоставляющего средства кластеризации для упакованных в контейнеры приложений. Swar даёт возможность управлять кластером из нескольких хостов Docker (например, созданных с использованием Docker Machine) в форме работы с одним виртуальным хостом. Так как Swarm использует штатный Docker API, он может применяться для управления и другими поддерживающими данный API инструментами, такими как dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins. В новой версии обеспечена интеграция с Mesos («docker run» теперь можно запустить в кластере Mesos), возможность запуска нескольких экземпляров первичных серверов Swarm для создания отказоустойчивых систем, полная поддержка Docker API (всё что может быть запущено в Engine теперь можно запустить в Swarm), значительное повышение стабильности.
Выпуск инструмента Docker Compose 1.3, позволяющего организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm. В новой версии добавлена возможность пересоздания только изменённых контейнеров (--x-smart-recreate), добавлена поддержка определения меток для привязки сервисов, в файл конфигурации docker-compose.yml добавлены новые опции dockerfile, labels, extra_hosts, pid, cpuset, read_only, security_opt и log_driver.
Одновременно сообщается о формировании под эгидой организации Linux Foundation группы Open Container Project, которая займётся продвижением единого формата контейнеров, который будет поддерживаться различными инструментариями, а также развитием универсального runtime для запуска контейнеров, формируемого на основе libcontainer. В итоге пользователи получат возможность упаковывать свои приложения в универсальные контейнеры, которые будут работать с любым инструментарием, включая Docker, rkt, Kurma и Jetpack.
Создаваемый стандарт будет разработан сообща и изначально не будет привязан к решениям отдельных вендоров, а также будет учитывать повышенные требования к безопасности. В состав группы в том числе вошли давние конкуренты — Docker и CoreOS, ранее пытавшиеся продвигать собственные форматы контейнеров, но теперь решившие объединить свои усилия. В частности, проект CoreOS продвигал на позицию стандарта спецификациею App Container, нацеленную на создание универсального переносимого формата контейнеров и поддержанную Google, Red Hat, Apcera и VMware. Кроме Docker и CoreOS, в состав группы Open Container Project также вошли компании Microsoft, Amazon Web Services, Cisco, Google, EMC, Fujitsu, HP, Huawei, IBM, Intel, Red Hat и VMware.
Ещё новости по теме:
18:20