The OpenNET Project / Index page

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

Доступен Docker 1.8. Представлена система для запуска Docker-контейнеров поверх гипервизора

15.08.2015 17:21

Представлен релиз инструментария для управления изолированными Linux-контейнерами Docker 1.8, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. В частности, Docker позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.

Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Для создания контейнеров предлагается использовать libcontainer (обёртка над namespaces и cgroups), также возможно применение lxc, libvirt, systemd-nspawn, OpenVZ контейнеров с помощью библиотеки LibCT и других систем изоляции. Для формирования контейнера достаточно загрузить базовый образ окружения (docker pull base), после чего можно запускать в изолированных окружениях произвольные приложения (например, для запуска bash можно выполнить "docker run -i -t base /bin/bash").

Из добавленных в Docker 1.8 новшеств можно отметить:

  • Функциональность Docker Content Trust для проверки достоверности образа контейнера по цифровой подписи, позволяет удостовериться, что образ размещён в репозитории заявленным издателем. Для верификации используется система открытых ключей, при которой образ подписывается закрытым ключом издателя, а затем может быть проверен при помощи публично доступного открытого ключа. Для публикации, верификации и безопасного обновления образов в Docker интегрирован инструментарий Notary, основанный, в свою очередь, на фреймворке The Update Framework (TUF). Проверка осуществляется автоматически при выполнении типовых команд, таких как docker pull, docker push, docker build, docker create и docker run;
  • Представлен Docker Toolbox, cпециализированный инсталлятор для Windows и OS X, упрощающий развёртывание и запуск окружения разработчика Docker. Docker Toolbox позиционируется как замена Boot2Docker и включает клиентское ПО для Docker, компоненты Machine и Compose, а также систему виртуализации VirtualBox;
  • В разряд стабильных переведена добавленная в прошлом выпуске экспериментальная система для подключения плагинов, выполняемых в форме отдельных процессов-обрабочиков. В разряд стабильный также переведены плагины для организации хранилищ, например, позволяющие работать с сетевыми хранилищами, такими как Flocker, Blockbridge, Ceph, ClusterHQ, EMС и Portworx;
  • Система драйверов для ведения логов, позволяющих реализовать различные схемы сохранения системного журнала, в том числе передачи логов контейнера на внешний syslog-сервер, расширена возможностью передачи логов в системы Graylog и Fluentd. Добавлен драйвер для организации ротации логов на диске;
  • Команда "docker cp" теперь может применяться не только для копирования файлов из контейнера на хост-систему, но и наоборот. Например, "docker cp foo.txt mycontainer:/foo.txt";
  • Для запуска демона Docker представлена новая команда "docker daemon", которую следует использовать вместо опции "-d". Новая команда позволяет явно разделить клиентские опции (docker --help) и опции демона (docker daemon --help);
  • Возможность настройки формата вывода команды "docker ps" через указание опции "--format";
  • Поддержка настройки директории с файлами конфигурации клиента через указание пути в опции --config или переменной окружения DOCKER_CONFIG, что даёт возможность запустить разные экземпляры docker с разными наборами конфигурации;
  • Выпуск инструмента Machine 0.4, предназначенного для быстрого развёртывание хостов в гостевых окружениях систем виртуализации VirtualBox, VMware, AWS, Digital Ocean и Microsoft Azure. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером. В новой версии добавлены стредства настройки движка для использования http-прокси;
  • Выпуск инструмента Swarm 0.4, предоставляющего средства кластеризации для упакованных в контейнеры приложений. Swarm даёт возможность управлять кластером из нескольких хостов Docker (например, созданных с использованием Docker Machine) в форме работы с одним виртуальным хостом. Так как Swarm использует штатный Docker API, он может применяться для управления и другими поддерживающими данный API инструментами, такими как dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins. В новой версии улучшена реализация встроенного планировщика и драйвера для интеграции с Mesos (теперь можно использовать инструменты docker для управления кластером Mesos);
  • Выпуск инструмента Docker Compose 1.4, позволяющего организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm. В новой версии значительно увеличена скорость запуска и остановки приложений, пересоздание контейнера производится только при необходимости, обеспечено параллельное выполнение работ. Добавлена возможность назначения произвольных имён контейнерам и поддержка чтения конфигурации из стандартного ввода (можно генерировать файл конфигурации на лету);

Дополнительно можно отметить анонс проекта Hyper (Hypervisor-agnostic Docker Engine), предоставляющего средства для запуска образов контейнеров Docker с использованием полноценных средств виртуализации, в частности, виртуальных машин Xen, KVM и VirtualBox. Hyper даёт возможность добиться более высокого уровня изоляции и безопасности, сохранив при этом такие достоинства систем контейнерной изоляции, как удобство работы, высокую скорость запуска, высокую производительность, небольшой размер контейнера и переносимость.

Для управления контейнером продолжает использоваться инструментарий docker, дополненный утилитой hyper и демоном hyperd. В каждой виртуальной машине запускается урезанное ядро Linux (HyperKernel) и сервис инициализации HyperStart, который выполняет задачу загрузки образов контейнера в виртуальной машине (в каждой виртуальной машине можно запускаться несколько контейнеров), настройки их изоляции и запуска. Кроме HyperKernel и HyperStart в виртуальной машине не запускается никаких системных компонентов. Время загрузки контейнера составляет доли секунды, потребление памяти около 28 Мб ОЗУ на виртуальную машину.



  1. Главная ссылка к новости (https://blog.docker.com/2015/0...)
  2. OpenNews: Представлен порт Docker для FreeBSD
  3. OpenNews: Выпуск Docker 1.7. Docker и CoreOS объединили усилия в разработке единого формата контейнеров
  4. OpenNews: Треть образов контейнеров в Docker Hub содержит опасные уязвимости
  5. OpenNews: Выпуск cистемы управления контейнерной виртуализацией Docker 1.6
  6. OpenNews: Intel представил Clear Linux с контейнерами приложений на базе виртуализации
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42800-docker
Ключевые слова: docker
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, VecH (ok), 19:23, 15/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где взять мануал что бы с этим докером познакомится, типа Quick Start Guide без чтения огромной портянки

    пощупал, если понравилось, полез в дебри, а если нет, тогда просто забыл

     
     
  • 2.2, Kfur (?), 19:38, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.linuxjournal.com/content/docker-lightweight-linux-containers-consi
     
     
  • 3.3, VecH (ok), 19:40, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • –8 +/
    > http://www.linuxjournal.com/content/docker-lightweight-linux-containers-consi

    Спасибо, но у меня с английским туговато, для просто ознакомится, читать столько текста с моими познаниями английского это долго будет

    неужели на русском ничего нет, гуглил пару месяцев назад на тему Docker, не нашел к сожалению

     
     
  • 4.4, Kfur (?), 19:41, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    http://rus-linux.net/MyLDP/vm/docker/docker-tutorial.html
     
     
  • 5.6, VecH (ok), 19:47, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > http://rus-linux.net/MyLDP/vm/docker/docker-tutorial.html

    Благодарю, оно самое

     
  • 4.31, Аноним (-), 12:01, 17/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    так вы для начала мануал по Английскому изучите, полезно будет
     

  • 1.5, Аноним (-), 19:45, 15/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Появление этого Hyper это признание дырявости докера?
     
     
  • 2.25, GenryU (?), 14:16, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да! Docker не для стабильной и безопасной работы.  Просто игрушка для тех, кто не хочет пользоваться systemd (да-да).
     
     
  • 3.29, fake man (?), 19:54, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При чём здесь systemd?
     
     
  • 4.33, Аноним (-), 12:55, 17/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    systemd тут как красная тряпка.
     
     
  • 5.34, SysA (?), 19:26, 17/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > systemd тут как красная тряпка.

    Нет, systemd тут как systemd-nspawn! :)

     
  • 3.35, SysA (?), 19:32, 17/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да! Docker не для стабильной и безопасной работы.  Просто игрушка для
    > тех, кто не хочет пользоваться systemd (да-да).

    Поддерживаю! Хотя мне до недавнего времени очень не нравился systemd как система инициализации, но сейчас работаю в конторе, где systemd-nspawn контайнеры используются в весьма серЪезных production-системах. Вынужден был изменить свое мнение, поскольку systemd-nspawn - это действительно вещь!

     
     
  • 4.37, fake man (?), 21:12, 17/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Я удивлён.
    Думал, что systemd - система инициализации с бинарными логами.

    Какое отношение к этому имеют контейнеры?
    systemd - аналог docker?

     
     
  • 5.38, SysA (?), 19:01, 20/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Я удивлён.
    > Думал, что systemd - система инициализации с бинарными логами.
    > Какое отношение к этому имеют контейнеры?
    > systemd - аналог docker?

    Практически - да!

     
     
  • 6.39, SysA (?), 19:06, 20/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Я удивлён.
    >> Думал, что systemd - система инициализации с бинарными логами.
    >> Какое отношение к этому имеют контейнеры?
    >> systemd - аналог docker?
    > Практически - да!

    Точнее - и то, и другое, и еще много чего!.. :)
    В отличие от Докера контейнеры от системды имеют меньший оверхед и лучшую стабильность.
    У нас они массово используются в продакшине и неплохо себя зарекомендовали.

     

  • 1.7, Аноним (-), 22:16, 15/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чем проще начинку контейнера создать без усложнений и запуска лишних демонов? Что бы потом как контейнер c LXC или systemd-nspawn использовать?

    Нужно пару web-служб изолировать в RHEL 7, Docker для этого излишне нагромождён. Вручную не хочется каждый раз ковыряться и обновления накатывать. Хотелось бы как-то автоматизировать поддержание в актуальном виде начинки контейнера без засовывания вовнутрь полноценного дистрибутива.

     
     
  • 2.8, Аноним (-), 22:24, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Нужно пару web-служб изолировать в RHEL 7, Docker для этого излишне нагромождён. Вручную не хочется каждый раз ковыряться и обновления накатывать. Хотелось бы как-то автоматизировать поддержание в актуальном виде начинки контейнера без засовывания вовнутрь полноценного дистрибутива.

    "Хочу есть. Но не ртом."

     
     
  • 3.11, Аноним (-), 22:41, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ситуация сейчас такова, что либо ставить Docker и получить кучу лишнего с весящим демоном управления, либо делать контейнер как срез полного дистрибутива (т.е. тянуть туда yum для обновлений и т.п.). А хочется, чтобы как в docker создать минимальное окружение для запуска приложения и не получить гемороя при обновлении всего этого хозяйства.
     
     
  • 4.15, Аноним (-), 23:44, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > в docker создать минимальное окружение для запуска приложения и не получить
    > гемороя при обновлении всего этого хозяйства.

    Очень зависит от того что имеется в виду под "минимальным окружением". Технически, контейнерам пофиг что пинать внутри. Запустите /bin/bash - получите отрезанный от остальной системы шелл (степень отрезки - настраивается). А запустите /sbin/init - запустится некая копия системы с указанного пути. Просто потому что init отпедалит стартовую последовательность системы и запустит иерархию процессов. Эта иерархие процессов при должной изоляции будет похожа на отдельную ОС. Скажем если clone() сказали CLONE_NEWNET - там будет новый сетевой namespace. Ну то-есть настройки сети отличные от хоста, даже localhost там будет свой. Более подробно как линух вообще это умеет  - расписано в man clone (системный вызов такой).

    А системд умеет некую отрезку в контейнеры и жонглирования путями даже и без systemd.nspawn-а.

     
  • 2.9, Ананизмус (?), 22:25, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Selinux- не?
     
     
  • 3.12, Аноним (-), 22:42, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Selinux- не?

    Это совсем из другой оперы.

     
     
  • 4.16, Аноним (-), 23:49, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это совсем из другой оперы.

    Однако можно сделать картину "фантомас в очках на аэроплане" - в мануале системд есть кроме всего прочего и пример запуска контейнера с отдельным контекстом SELinux. Командлайн там конечно не совсем тривиальный, но в SELinux так вообще везде и те кто им пользуется - должны были бы уже привыкнуть :).

     
  • 2.14, Аноним (-), 23:35, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Debootstrap ом, если это дебиан-подобные Ну или как оно там у вас в рхел называ... большой текст свёрнут, показать
     
  • 2.18, Аноним (-), 00:26, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Юзай LXC и не парь мозг докером, он не предназначен для изолирования чего либо, докер предназначен для распространения, это как пакет с набором софта.
     
  • 2.19, Xaionaro (ok), 09:14, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Мы используем LXC и "полноценные системы". Просто образ "полноценной системы" заранее подготовлен и цепляется в новоиспекаемый контейнер с помощью AUFS/OverlayFS.
     
     
  • 3.21, 444 (??), 11:41, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Поделитесь описанием мануалом для настройки вашей связки.
     
  • 2.20, Дима (??), 09:14, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    sandbox
     
  • 2.27, Led (ok), 18:53, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А чем проще начинку контейнера создать без усложнений и запуска лишних демонов?

    man lxc-create

     
  • 2.36, SysA (?), 19:34, 17/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А чем проще начинку контейнера создать без усложнений и запуска лишних демонов?
    > Что бы потом как контейнер c LXC или systemd-nspawn использовать?
    > Нужно пару web-служб изолировать в RHEL 7, Docker для этого излишне нагромождён.
    > Вручную не хочется каждый раз ковыряться и обновления накатывать. Хотелось бы
    > как-то автоматизировать поддержание в актуальном виде начинки контейнера без засовывания
    > вовнутрь полноценного дистрибутива.

    Откройте для себя Configuration Management!.. :)

     

  • 1.10, Старшина Кириллов (?), 22:34, 15/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Когда вы перестанете в инструкциях по установке пайпать скрипты из интернета в шэлл?!
     
     
  • 2.17, Аноним (-), 23:50, 15/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда вы перестанете в инструкциях по установке пайпать скрипты из интернета в шэлл?!

    Когда им кто-нибудь rm -rf / сделает уже наконец, перехзватив домен или просто hijack-нув DNS.

     

  • 1.22, Аноним (-), 11:53, 16/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А можна например запустить программу не в контейнере и упаковать в контейнер с помощью docker? Нигде не нашел внятного пояснения что там в этом контенере вообще содержится, ядро туда тоже запихивают для совместимости или это по функциональности то же самое что и программы для оффтопика?
     
  • 1.23, АнонимХ (??), 13:11, 16/08/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Дайте решение для изолирования скайпа с целью обеспечения безопасности ( что бы по соседним процессам и фс не шарился), пожалуйста. Докер подходит?
     
     
  • 2.24, lucentcode (ok), 13:25, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, обезопасить себя от сюрпризов skype можно гораздо проще - с помощью firejail.
     
  • 2.26, Дима (??), 14:29, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    sandbox
     
  • 2.28, Led (ok), 18:55, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    man apparmor
     
  • 2.30, Онон (?), 21:20, 16/08/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://hub.docker.com/r/tomparys/skype/
     
  • 2.32, Аноним (-), 12:36, 17/08/2015 [^] [^^] [^^^] [ответить]  
  • +/
    which skype | sudo xargs rm -f

    ...единственный надёжный способ.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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