Представлен релиз инструментария для управления изолированными Linux-контейнерами Docker 1.5, предоставляющего высокоуровневый 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.5 новшеств можно отметить:

  • В демоне Docker обеспечена полная поддержка IPv6. Для назначения IPv6-адресов контейнерам добавлены новые флаги "--ipv6" и "--fixed-cidr-v6". В контейнерах обеспечена возможность резолвинга IPv6-адресов и установки сетевого моста к шлюзу fe80::1/64;
  • Возможность запуска контейнера с монтированием корневой файловой системы в режиме только для чтения, что позволяет ограничить область записи данных специальными разделами или не допустить изменение изначально предлагаемого набора данных. Для активации режима представлен флаг "--read-only".
  • Возможность наблюдения за изменением показателей работы контейнера в стиле утилиты top. Режим включается командой "docker stats" и позволяет наблюдать за такими характеристиками контейнеров, как загрузка процессора, интенсивность ввода/вывода, размер сетевого трафика и потребление памяти.
  • Возможность размещения сборочного сценария в файле с произвольным именем, отличающимся от имени по умолчанию (Dockerfile), что позволяет определить несколько альтернативных сборочных файлов для одного проекта (например, один для тестирования, другой для создания рабочего окружения). Определить файл, используемый для сборки, можно через опцию "docker build -f".
  • Опубликована первая версия спецификации, определяющей формат и конфигурацию образов файловой системы для контейнеров Docker.


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