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

  • Поддержка файлов .dockerignore, в которых может быть определён список файлов и директорий, игнорируемых в процессе сборки контейнера;
  • Обеспечена приостановка работы контейнера на время выполнения коммита, что позволяет защититься от возможного нарушения целостности файлов. Отключить приостановку можно при помощи опции "--pause=false", например "docker commit --pause=false container_id";
  • Возможность просмотра хвоста лога контейнера, например, для просмотра последних 10 записей можно выполнить команду "docker logs --tail 10 container_id". Также возможно отслеживание новых элементов через указание флага "-f" по аналогии с утилитой tail;
  • Возможность передачи tar-файла в качестве готового контекста при выполнении команды "docker build", что может использоваться для автоматизации формирования сборок, например: "cat context.tar | docker build - or docker run builder_image | docker build -";
  • Поддержка монтирования с опцией "--bind" целиком всей файловой системы для контейнера. Ранее корневая ФС не могла быть указана в опции "--volumes", теперь при помощи "docker run -v /:/my_host ubuntu:ro ls /my_host" можно запускать команду в контейнере, построенном поверх текущей ФС;
  • Увеличена производительность работы в конфигурациях с большим числом образов и контейнеров. Сокращено время запуска управляющего фонового процесса.


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