Выпуск cистемы управления контейнерной виртуализацией Docker 1.4
Анонсирован релиз инструментария для управления изолированными Linux-контейнерами Docker 1.4, предоставляющего высокоуровневый 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.4 новшеств можно отметить:
Новый драйвер для организации хранилища поверх многослойной файловой системы OverlayFS, код которой вошёл в состав ядра Linux 3.18; В управляющий демон добавлена опция »-label» для установки меток в форме «ключ=значение», выводимых при выполнении команды «docker info»; Поддержка установки переменных окружения через указание в Dockerfile опции «ENV name=value name2=value2…»; В вывод команды «docker info» добавлено отображение полей с идентификатором и именем; Возможность фильтрации событий по имени события, контейнеру и образу окружения; Команда «docker cp» расширена поддержкой копирования данных из разделов контейнера. Одновременно доступен корректирующие выпуск Docker 1.3.3, в котором устранены три уязвимости (проблемы также исправлены в Docker 1.4.0), которые были обнаружены в процессе аудита после выявления в ноябре двух критических проблем с безопасностью. Уязвимости проявляются при использовании готовых образов или образов, собранных Dockerfile, загруженных из сторонних непроверенных источников. Как и прошлые уязвимости, новые проблемы позволяют выполнить код или получить доступ к внешней ФС в процессе запуска или обработки специально модифицированного образа контейнера.
CVE-2014–9356 — возможность записи во внешние части ФС и выхода за пределы контейнера через манипуляции с абсолютными символическими ссылками; CVE-2014–9357 — повышение привилегий (выполнение кода с правами root) в процессе декодирования специально оформленных архивов LZMA (.xz); CVE-2014–9358 — проблемы с проверкой идентификатора образа контейнера, которые могут быть использованы для подмены загружаемого из репозитория образа или выхода за пределы допустимого файлового пути. Дополнительно можно отметить публикацию компанией Docker трёх новых инструментов:
Docker Machine — система для быстрого развёртывание хостов в гостевых окружениях систем виртуализации, предназначенных для организации контейнерной виртуализации приложений на основе Docker. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером. Поддерживается создание серверов в виртуальных окружениях VirtualBox, VMware, AWS, Digital Ocean и Microsoft Azure; Docker Swarm — средства кластеризации для упакованных в контейнеры приложений. Даёт возможность управлять кластером из нескольких хостов Docker (например, созданных с использованием Docker Machine) в форме работы с одним виртуальным хостом. Так как Swarm использует штатный Docker API, он может применяться для управления и другими поддерживающими данный API инструментами, такими как dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins; Docker Compose — позволяет организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm.
© OpenNet