Анонсирован релиз инструментария для управления изолированными 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.


Источник: http://www.opennet.ru/opennews/art.shtml?num=41251