The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск cистемы управления контейнерной виртуализацией Docker 1.3

17.10.2014 11:41

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

  • Новая команда "docker exec", позволяющая запустить произвольный процесс в уже существующем активном контейнере. При помощи данной команды можно добиться выполнения таких вещей, как добавление или удаление устройств из запущенных контейнеров, отладка работающих контейнеров и выполнение команд, которые не являются частью спецификации контейнера. Например, для запуска bash в контейнере ubuntu_bash можно выполнить команду "docker exec ubuntu_bash -it bash". Ранее для выполнения подобных команд приходилось запускать в контейнере sshd, что создавало лишние угрозы безопасности.
  • Новая команда "docker create", позволяющая настроить контейнер без его непосредственного запуска. Ранее предлагаемая команда "docker run" кроме создания контейнера осуществляла сразу и запуск процессов в нём. Использование "docker create" даёт возможность расширить средства управления жизненным циклом контейнера и реализовать до запуска контейнера такие действия, как настройка дисковых разделов или маппинг портов. Например, можно быстро подготовить новые контейнеры при возникновении непредвиденного всплеска нагрузки.
  • Для гарантирования целостности и подтверждения источников официальных образов контейнеров теперь поддерживается проверка по цифровой подписи. Подписанные контейнеры отмечены в каталоге Docker Hub голубой лентой. Проверка корректности подписи осуществляется автоматически, если замечено использование некорректной подписи Docker Engine продолжит использование прошлого образа.
  • Добавлена новая опция "--security-opt", позволяющая использовать метки и профили SELinux и AppArmor, что даёт возможность обойтись без перехода в привилегированный режим ("docker run --privileged") на ядрах Linux с поддержкой SELinux или AppArmor. Например, для применения политики svirt_apach к контейнеру можно выполнить "docker run --security-opt label:type:svirt_apache -i -t centos \\ bash";
  • Для отличных от Linux систем, таких как OS X, в состав включен минималистичный Linux-дистрибутив boot2docker, специально подготовленный для запуска контейнеров Docker. Упрощены средства для проброса в контейнеры содержимого пользовательских директорий OS X.

Дополнительно можно отметить инициативу по использованию Doсker для организации универсальной системы распространения приложений, позволяющей организовать поставку программ в форме, не привязанной к конкретным дистрибутивам Linux. Проект позиционируется как подход, альтернативный предложению от разработчиков systemd. Следует отметить, что средства для упаковки десктоп-приложений в Docker-контейнеры уже несколько месяцев развиваются совместными усилиями компаний Red Hat и Docker.

Также можно упомянуть объявление о партнёрстве Docker Inc с компанией Microsoft в плане продвижения технологий Docker для платформы Windows, интеграции Docker Hub с каталогом Microsoft Azure и разработки варианта Docker Engine для Windows Server, который планируется интегрировать в следующий выпуск Windows Server.

Основные возможности Docker:

  • Возможность размещения в изолированном окружении разнородной начинки, включающей различие комбинации исполняемых файлов, библиотек, файлов конфигурации, скриптов, файлов jar, gem, tar и т.д.
  • Поддержка работы на любом компьютере на базе архитектуры x86_64 с системой на базе современного ядра Linux, начиная от ноутбуков, заканчивая серверами и виртуальными машинами. Возможность работы поверх немодифицированных современных ядер Linux (без наложения патчей) и в штатных окружениях всех крупных дистрибутивов Linux, включая Fedora, RHEL, Ubuntu, Debian, SUSE, Gentoo и Arch;
  • Использование легковесных контейнеров для изоляции процессов от других процессов и основной системы.
  • Так как контейнеры используют свою собственную самодостаточную файловую систему, не важно где, когда и в каком окружении они запускаются.
  • Изоляция на уровне файловой системы: каждый процесс выполняется в полностью отдельной корневой ФС;
  • Изоляция ресурсов: потребление системных ресурсов, таких как расход памяти и нагрузка на CPU, могут ограничиваться отдельно для каждого контейнера с использованием cgroups;
  • Изоляция на уровне сети: каждый изолированный процесс имеет доступ только к связанному с контейнером сетевому пространству имён, включая виртуальный сетевой интерфейс и привязанный к нему IP-адрес;
  • Корневая файловая система для контейнеров создаётся с использованием механизма copy-on-write (отдельно сохраняются только изменённые и новые данные), что позволяет ускорить развёртывание, снижает расход памяти и экономит дисковое пространство;
  • Все стандартные потоки (stdout/stderr) каждого выполняемого в контейнере процесса накапливаются и сохраняются в виде лога;
  • Изменённая файловая система одного контейнера может использоваться в качестве основы для формирования новых базовых образов и создания других контейнеров, без необходимости оформления шаблонов или ручной настройки состава образов;
  • Возможность использования интерактивной командной оболочки: к стандартному вводу любого контейнера может быть привязан псевдо-tty для запуска shell.
  • Поддержка использования разных систем хранения, которые могут подключаться как плагины. Среди поддерживаемых драйверов хранения заявлены aufs, device mapper (используются снапшоты LVM), vfs (на основе копирования директорий) и Btrfs. Ожидается появление драйверов для ZFS, Gluster и Ceph;
  • Возможность создания контейнеров, содержащих сложные программные стеки, через связывание между собой уже существующих контейнеров, содержащих составные части формируемого стека. Связывание осуществляется не через слияние содержимого, а через обеспечения взаимодействия между контейнерами (создаётся сетевой туннель).



  1. Главная ссылка к новости (https://blog.docker.com/2014/1...)
  2. OpenNews: Red Hat и Docker развивают систему изолированных контейнеров для десктоп-приложений
  3. OpenNews: Доступны установочные образы Fedora Atomic
  4. OpenNews: Первый стабильный выпуск серверной Linux-системы CoreOS
  5. OpenNews: Выпуск Docker 1.2. Открыт код Flocker, системы управления кластерами изолированных контейнеров
  6. OpenNews: Разработчики Systemd намерены внедрить кардинально новые методы построения дистрибутивов Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/40857-docker
Ключевые слова: docker
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (21) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, vn971 (ok), 12:56, 17/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Перестал, кстати, активно интересоваться этой системой после того как понял что она не security-oriented.

    То есть, вот так вроде можно говорить:
      "хочу использовать Docker чтобы быстро и универсально разворачивать софт ABC"
    Но при этом Docker это неправильный инструмент для реализации вот этого:
      "хочу тулзу для секьюрного и изолированного юзанья отдельных прог".

    Увы..

     
     
  • 2.2, Аноним (-), 13:04, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почему?
     
     
  • 3.17, vn971 (ok), 23:01, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что система собственно не ориентирована на секьюрность..

    В чем она хороша: в быстрой выкатке обновлений, в лёгкости и интересных подходах к формированию "образов" (из-за aufs), в том что требует мало ресурсов.

    Вот это -- и есть те цели которая компания перед собой ставит (фактически). Секьюрность -- лишь в разумных пределах, "по пути" и насколько это возможно. Сама странице docker-а о security честно говорит что нельзя на докер полагаться в этом плане. И даёт советы не использовать root внутри docker-а...

     
  • 2.4, Журналовращатель (?), 13:07, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Согласен, добавлю ещё:
    http://habrahabr.ru/company/microsoft/blog/240575/
     
     
  • 3.10, Аноним (-), 17:05, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, понимаешь, микрософтушке очень обидно что они с виртуализациями и контейнерами - на задворках цивилизации. Вот они и пытаются подмазаться.

    Что иронично - соседний пост на хабрашвабре рассказывает о том как хорош докер в плане отсутствия вендорлока. Готов поспорить, MS такие посты не одобряет :)

     
  • 2.5, Аноним (-), 14:08, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как же быть?
     
     
  • 3.18, vn971 (ok), 23:04, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Как же быть?

    Очень хороший вопрос.:)
    Просто наплодить обычных unix-пользователей и разграничивать кто чем занимается?
    Накатить selinux / grsecurity / .. ?
    Проанализировать годятся ли для твоей задачи ОС на микроядрах (идеологически делающие упор на секьюрность) ?
    ???

     
  • 2.13, Аноним (-), 19:55, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Как и все прочие контейнеры. Да и гипервизоры ломают, бывает. то, что разработчики заявляют свою ориентацию на безопасность, еще не гарантирует наличие оной.
     
     
  • 3.19, vn971 (ok), 23:05, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а тут даже и не обещают ничего.. Даже честно признаются что изоляции полной нет и векторов атаки на систему -- весьма много.
     

  • 1.3, Аноним (-), 13:05, 17/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    вот тоже "интересная" новость

    Партнерство Docker и Microsoft: множество анонсов
    http://habrahabr.ru/company/microsoft/blog/240575/

    и не забываем что происходит с теми до кого дотягиваются шаловливые ручки микрософта =)

     
     
  • 2.6, АрекусандеруДэсу (?), 14:10, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Microsoft кстати сейчас уже не тотр. Посмотрите на их последние анонсы своих продуктов (какие-то мобильные сервисы и сервис для создания презентаций, забыл как называются) - на сайте иногда ни слова об Microsoft и в промо-ролике люди пользуются iPad'ами и андроидовскими девайсами (а не WindowsPhone и не Surface) и т.д. Т.е. что-то в их подходе с приходом Индуса поменялось.

    Хотя, конечно, бойтесь данайцев, дары приносящих.

     
     
  • 3.11, Аноним (-), 17:06, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Хотя, конечно, бойтесь данайцев, дары приносящих.

    Да, пример нокии в памяти еще свеж. Тем более что бренд как раз только на днях добили.

     
  • 2.8, Аноним (-), 14:48, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    сюрр какой-то
     
     
  • 3.14, Аноним (-), 20:23, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    с репозиториями они поступили еще эпичнее - скооперировались с какими-то вообще неизвестными типами из интернета, и теперь в чистой windows 10 можно будет набрать в консоли "install-package google-chrome"
     
     
  • 4.16, lucentcode (ok), 22:56, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не неизвестными парнями из интернета - а с вполне устоявшимся комьюнити которое образовалось вокруг открытого пакетного менеджера.
     

  • 1.7, Анонище (?), 14:32, 17/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >по использованию Doсker для организации универсальной системы распространения приложений, позволяющей организовать поставку программ в форме, не привязанной к конкретным дистрибутивам Linux.

    Здравствуй windows.

     
     
  • 2.12, Аноним (-), 17:07, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Здравствуй windows.

    Сходите на хабрашвабру по той ссылке, поймете насколько вы правы, но не там где вы могли подумать :). MS тоже так хочет теперь. Ну ок, им тоже притащат на систему минимальный образ линуха.

     

  • 1.9, Аноним (-), 15:21, 17/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    На самом деле она не упрощает, а создает только дополнительные трудности.

    Используйте vagrant

     
     
  • 2.15, anonymous (??), 21:33, 17/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Используйте vagrant

    ...и ваши волосы станут дущистыми и пущистыми?

     

  • 1.20, Аноним (-), 01:22, 18/10/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Для отличных от Linux систем, таких как OS X, в состав включен минималистичный Linux-дистрибутив boot2docker, специально подготовленный для запуска контейнеров Docker.

    Интересно, а под Вайном работает?

    ЗЫ
    Я знаю толк в извращениях )))

     
     
  • 2.21, й (?), 20:19, 22/10/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Там VirtualBox унутре
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру