The OpenNET Project / Index page

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

09.06.2014 20:44  Первый стабильный выпуск cистемы управления контейнерной виртуализацией Docker

Анонсирован первый стабильный релиз инструментария для управления изолированными Linux-контейнерами Docker 1.0, который признан готовым для создания промышленных решений. C первого тестового выпуска Docker, представленного в марте прошлого года, внесено 8741 изменений, к разработке подключилось 460 участников, создано более 14 тысяч профилей изоляции приложений. За прошедшие 15 месяцев проект достиг зрелости, набрал необходимый уровень возможностей, обеспечил соблюдение обратной совместимости, стабилизировал API и подготовил ряд сервисов для сопровождения решений на основе Docker.

Одновременно представлена новая открытая платформа для распространения приложений. Таким образом, Docker теперь выступает в роли платформы, в состав которой входят: движок Docker Engine, runtime для контейнеров, инструментарий для создания пакетов, API и облачный сервис Docker Hub. Кроме того, введены в строй официальные репозитории приложений, из которых можно загрузить готовые образы окружений для запуска популярных приложений, таких как MongoDB, MySQL, Nginx, Redis и WordPress.

Docker Hub представляет собой облачный сервис для организации совместной работы, автоматизации рабочего процесса, создания, распространения и запуска адаптированных для Docker приложений. По сути Docker Hub предоставляет набор сервисов, таких как распространение образа контейнера, управление изменениями, организация взаимодействия между пользователями и разработчиками, сопровождение жизненного цикла, интеграция со сторонними службами. Модель монетизации сервиса Docker Hub аналогична GitHub - работа в над публичными проектами бесплатна, а плата берётся только при необходимости использования приватных репозиториев.

Основные компоненты Docker Hub:

  • Интегрированная консоль для управления пользователями, группами, контейнерами, репозиториями и рабочими процессами;
  • Реестр, предоставляющий боле 14 тысяч изолированных приложений, которые можно использовать в качестве кирпичиков для создания собственных приложений;
  • Инструменты для совместной работы, позволяющие пользователям обмениваться своими приложениями через публичные и приватные репозитории, и приглашать других людей поучаствовать в разработке.
  • Автоматизированный сборочный сервис, позволяющий обеспечить автоматическую пересборку и обновлений приложений для поддержания образов в актуальном виде. Можно организовать обновление образа после появления изменений кода приложения в GitHub или Bitbucket.
  • Сервис Webhooks, позволяющий пользователю обеспечить управление из сторонних систем и автоматизировать выполнение типовых работ через RESTful API;
  • Docker Hub API, включающий сервис аутентификации и средства интеграции с внешними службами.

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").

По функциональности выпуск 1.0 полностью аналогичен версии 0.12, выпущенной два дня назад. По сравнению в версией 0.11 добавлен драйвер хранения для ФС XFS, обеспечена поддержка директивы "COPY" для копирования файла внутрь контейнера без разархивирования, реализованы команды "pause" и "unpause" для приостановки и возобновления работы контейнера при помощи cgroup freezer, при выполнении директивы "ADD" обеспечено наследование прав доступа к файлам, улучшены средства ограничения доступа к устройствам и задействованы capabilities в Linux. Организация IANA официально закрепила за Docker сетевой порт 2375 для доступа к API через HTTP и 2376 для доступа через HTTPS.

Основные возможности 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. Главная ссылка к новости (http://blog.docker.com/2014/06...)
  2. OpenNews: Релиз cистемы управления контейнерной виртуализацией Docker 0.12
  3. OpenNews: Docker отмечен премией JAX Innovation Awards 2014
  4. OpenNews: Доступна система управления контейнерной виртуализацией Docker 0.11
  5. OpenNews: Новая версия системы управления контейнерной виртуализацией Docker 0.10
Лицензия: CC-BY
Тип: Программы
Ключевые слова: docker, virtual, container
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 22:09, 09/06/2014 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Объясните по простому, зачем они нужен?
     
     
  • 2.3, gra (?), 22:36, 09/06/2014 [^] [ответить]    [к модератору]
  • +/
    это абстракция над lxc
     
  • 2.5, Слакинсан (?), 22:42, 09/06/2014 [^] [ответить]     [к модератору]
  • +/
    Другой вариант ответа зачем это надо - люди деньги зарабатывают Монетизация хот... весь текст скрыт [показать]
     
     
  • 3.55, Аноним (-), 15:28, 11/06/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Нихр на это не значит Пока ты не увидишь бухгалтерские документы И даже тогда ... весь текст скрыт [показать]
     
  • 2.8, rob pike (?), 22:50, 09/06/2014 [^] [ответить]     [к модератору]  
  • +/
    Если совсем коротко - в прекрасном новом мире считается что зависимости между па... весь текст скрыт [показать]
     
     
  • 3.9, Аноним (-), 23:03, 09/06/2014 [^] [ответить]     [к модератору]  
  • +2 +/
    ну почему же, просто люди ставят например весь lamp в контейнеры и изолируют при... весь текст скрыт [показать]
     
     
  • 4.11, rob pike (?), 23:12, 09/06/2014 [^] [ответить]     [к модератору]  
  • +/
    Контроль ресурсов в списке зачем людям Docker если и есть, то месте на последн... весь текст скрыт [показать]
     
     
  • 5.20, RomanCh (ok), 00:35, 10/06/2014 [^] [ответить]     [к модератору]  
  • +/
    Нуу Не знаю, я например использую, особо в отношении памяти и проца Не то чт... весь текст скрыт [показать]
     
     
  • 6.23, rob pike (?), 00:52, 10/06/2014 [^] [ответить]    [к модератору]  
  • +/
    У вас очень полезные применения расписаны ниже, но и очень нестандартные, относительно основной массы пользователей.
     
     
  • 7.30, RomanCh (ok), 02:13, 10/06/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Возможно, я не занимался изучением чужих интересов к Docker, и уж точно не отриц... весь текст скрыт [показать]
     
  • 3.16, rob pike (?), 23:56, 09/06/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Пуля, пуля ... весь текст скрыт [показать]
     
  • 3.17, Аноним (-), 23:59, 09/06/2014 [^] [ответить]     [к модератору]  
  • –5 +/
    Ну а что, не так уж врут пока ты будешь поднимать 20 железных серверов, рак на ... весь текст скрыт [показать]
     
     
  • 4.19, хм (?), 00:14, 10/06/2014 [^] [ответить]    [к модератору]  
  • +5 +/
    >А нарезать 20 виртуалок и распихать в них все сможет и 1 системный администратор, особенно с автоматизацией всего этого.

    а зачем Docker?  

     
  • 4.35, Аноним (-), 06:33, 10/06/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    Для поднятия 20 железных серверов есть: chef и рак не свистит
     
  • 4.56, Аноним (-), 15:33, 11/06/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    Ай, что ты, вихрь А как насчет кастомных серверов Или ты пытаешься убедить тут... весь текст скрыт [показать]
     
     
  • 5.57, Аноним (-), 01:15, 12/06/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    "Или ты пытаешься убедить, кастомные сервера, IRL, др.чить вприсядку, все совершенно иначе"

    Тебя на ксакепе забанили, да?

     
  • 2.10, RomanCh (ok), 23:11, 09/06/2014 [^] [ответить]    [к модератору]  
  • +11 +/
    Лично я например использую для:
    * Запуска всякой неведомой фигни которая чёрт знает что потянет за собой и вообще ХЗ как может работать.
    * Сборки/установки приложений со специфическими требованиями.
    * Изоляции всякого УГ типа скайпа и жабных приложений, когда его таки приходится запускать.
    * Сборки чистых пакетов под ОС с другой пакетной системой. Например под Debian собираю rpm'ки для CentOS. На днях с этим вообще забавно получилось - в "натуральном CentOS" не мог собраться пакет т.к. насована куча репозиториев и образуются битые зависимости, зато поставил в Docker'е под Debian'ом базовую чистую систему за 5 минут буквально (с инета качалось), доставил необходимые пакеты для сборки и всё собралось на ура.

    А слова про "мало админов/зависимости - плохо и сложно", ну наверное они тоже имеют вес. Но это кому как.

     
     
  • 3.62, integer (ok), 18:16, 23/06/2014 [^] [ответить]     [к модератору]  
  • +/
    gt оверквотинг удален Собирать пакеты надо обязательно в чистом окружении, а н... весь текст скрыт [показать]
     
     
  • 4.64, Andrey Mitrofanov (?), 09:41, 24/06/2014 [^] [ответить]    [к модератору]  
  • +/
    > Собирать пакеты надо обязательно в чистом окружении, а не в мусорке с
    > непонятно-какими пакетами.

    Не убязательно. Это зависит. У RH второй способ = часть бизнес-модели.

     
     
  • 5.65, integer (ok), 14:04, 24/06/2014 [^] [ответить]     [к модератору]  
  • +/
    Где вы нашли информацию как RH собирает RHEL ... весь текст скрыт [показать]
     
     
  • 6.66, Andrey Mitrofanov (?), 15:08, 24/06/2014 [^] [ответить]    [к модератору]  
  • +/
    >> Не убязательно. Это зависит. У RH второй способ = часть бизнес-модели.
    > Где вы нашли информацию как RH собирает RHEL?

    Именно!

     
  • 2.12, Аноним (-), 23:24, 09/06/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    "виртуализация для чайникой". эдакий "EMC для неосиляторов", примерное.
    для тех кто давно из анабиоза - есть и получше вещи.
     
     
  • 3.13, Аноним (-), 23:39, 09/06/2014 [^] [ответить]    [к модератору]  
  • +/
    Не поведаете какие?
     
  • 2.15, Аноним (-), 23:56, 09/06/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    >  Объясните по простому, зачем они нужен?

    Рулить относительно большими стадами виртуалок в духе энтерпрайзов.

     
     
  • 3.22, RomanCh (ok), 00:43, 10/06/2014 [^] [ответить]     [к модератору]  
  • +/
    Честно говоря я бы пока не решился Именно что бы стадами виртуалок гонять, ка... весь текст скрыт [показать]
     
  • 3.24, rob pike (?), 00:59, 10/06/2014 [^] [ответить]     [к модератору]  
  • +/
    С точки зрения рулить надо говорить про OpenStack, решения от Citrix на базе ... весь текст скрыт [показать]
     
     
  • 4.32, Аноним (-), 02:19, 10/06/2014 [^] [ответить]    [к модератору]  
  • +/
    Откровенный бред. Разберитесь уже где "ниже" у вас где "выше", и кто куда карабкается.

     
  • 2.18, Аноним (-), 23:59, 09/06/2014 [^] [ответить]    [к модератору]  
  • +/
    Разрабатывать приложения в практически staging environment прямо на девелоперской тачке.
     
     
  • 3.25, rob pike (?), 01:00, 10/06/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    Для этого Docker ничем принципиально не лучше VM.
     
     
  • 4.29, Аноним (-), 02:11, 10/06/2014 [^] [ответить]    [к модератору]  
  • +3 +/
    С точки зрения идиота - да.
     
     
  • 5.38, Аноним (-), 07:11, 10/06/2014 [^] [ответить]    [к модератору]  
  • +/
    И с точки зрения затычки каждой бочки - тоже.
     
  • 4.53, zztop (?), 22:15, 10/06/2014 [^] [ответить]     [к модератору]  
  • +/
    Вы, конечно же, имели ввиду для этого Docker принципиально всем лучше VM Я сра... весь текст скрыт [показать]
     
     
  • 5.61, rob pike (?), 06:58, 17/06/2014 [^] [ответить]    [к модератору]  
  • +/
    Вы действительно прямо кожей чувствуете этот оверхед?
    Или девелоперские машинки это теперь Macbook Air с 2GB RAM, где лишняя VM кого-то напрягает?
     
  • 2.27, Dfox (?), 01:25, 10/06/2014 [^] [ответить]    [к модератору]  
  • +/
    Если есть возможность использовать VM то оно не нужно.
     
     
  • 3.31, Аноним (-), 02:16, 10/06/2014 [^] [ответить]    [к модератору]  
  • +/
    > Если есть возможность использовать VM то оно не нужно.

    Запуск, остановка, клонирование, заморозка контейнера занимает не более 0,01 секунды.
    Плюс у контейнеров нет потери производительности.

     
     
  • 4.33, Perl_Jam (?), 02:42, 10/06/2014 [^] [ответить]    [к модератору]  
  • –3 +/
    chroot?
     
     
  • 5.34, Аноним (-), 03:21, 10/06/2014 [^] [ответить]     [к модератору]  
  • +2 +/
    80-тые атакуе А с тем что из chroot-а приложение может легко выйти или неограни... весь текст скрыт [показать]
     
     
  • 6.49, Perl_Jam (?), 15:29, 10/06/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    легко hardened вам в помощь ... весь текст скрыт [показать]
     
     
  • 7.50, Аноним (-), 16:38, 10/06/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    Больше костылей богу костылей?
    Как насчет сетевой подстистемы? А есди мне нужно другое ядро линукс?
    А cмогу я для chroot-ованной прогруммы выполнить #init 1 ?
     
  • 6.58, Аноним (-), 01:21, 12/06/2014 [^] [ответить]    [к модератору]  
  • +/
    cgroups. А что, уже придумали что-то лучше?
     
  • 4.45, SunXE (ok), 10:33, 10/06/2014 [^] [ответить]    [к модератору]  
  • +/
    libguestfs
     
  • 1.36, Аноним (-), 06:36, 10/06/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Прекрасно показывает убогость традиционных unix прав, разграничений доступа и пакетных менеджеров.
     
     
  • 2.40, Аноним (-), 08:35, 10/06/2014 [^] [ответить]    [к модератору]  
  • –3 +/
    Лови плюс!
     
  • 2.46, none_first (ok), 12:55, 10/06/2014 [^] [ответить]    [к модератору]  
  • +2 +/
    ждем рассказ про не убогую систему прав и пакетные менеджеры
     
  • 2.59, Аноним (-), 01:23, 12/06/2014 [^] [ответить]    [к модератору]  
  • +/
    > Прекрасно показывает убогость традиционных unix прав, разграничений доступа и пакетных
    > менеджеров.

    Для убогость для решения каких задач?

     
  • 1.37, rob pike (?), 06:51, 10/06/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    >Currently, you'll need to be at very large scale before the benefits of using Docker outweigh the added complexity it adds to your systems.

    https://devopsu.com/blog/docker-misconceptions/

     
     
  • 2.41, Аноним (-), 08:48, 10/06/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    >https://devopsu.com/blog/docker-misconceptions/

    А я думал это В. Ульянов(Ленин) сказал.

     
  • 2.43, Аноним (-), 08:55, 10/06/2014 [^] [ответить]     [к модератору]  
  • +/
    Не осилили Ну, бывает ... весь текст скрыт [показать]
     
  • 1.39, Аноним (-), 07:13, 10/06/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А в чем профит по сравнению с обычным LXC?
     
     
  • 2.42, Аноним (-), 08:52, 10/06/2014 [^] [ответить]    [к модератору]  
  • +/
    > А в чем профит по сравнению с обычным LXC?

    docker pull centos:6.4
    docker -t -i run centos:6.4 /bin/bash

     
     
  • 3.47, anonymous (??), 13:15, 10/06/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    lxc-create -t centos6.4 -n centos64test
    lxc-start -n centos64test
    lxc-console -n centos64test, ввести логин и пароль, либо если есть работающий днс - зайти по имени сразу по ssh, если в шаблон положить еще и ssh-ключик - еще и автоматом зайдет.
     
  • 3.48, Аноним (-), 13:17, 10/06/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    А словами рассказать кратко Вот docker pull centos 6 4 что делает Скачивает от... весь текст скрыт [показать]
     
     
  • 4.51, Аноним (-), 16:39, 10/06/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Да ... весь текст скрыт [показать]
     
  • 1.44, Аноним (-), 09:31, 10/06/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    @LTS1404:~$ docker.io -v
    Docker version 0.9.1, build 3600720

    Вот пока убунта не обновится, не продакшен ни фига.

     
  • 1.52, rob pike (?), 17:12, 10/06/2014 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    https news ycombinator com item id 7869141 ... весь текст скрыт [показать]
     
  • 1.54, lucentcode (ok), 23:31, 10/06/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Самое интересное решение из области виртуализации за последние годы. И самое перспективное. Хотя если нужно всего пару однотипных контейнеров, за глаза хватит  чистого lxc.
     
     
  • 2.63, integer (ok), 18:19, 23/06/2014 [^] [ответить]    [к модератору]  
  • +/
    > Самое интересное решение из области виртуализации за последние годы. И самое перспективное.
    > Хотя если нужно всего пару однотипных контейнеров, за глаза хватит  
    > чистого lxc.

    Перспективности больше чем практической пользы. Для двух виртуалок и vbox'a хватает уже кучу лет, а если это песочница, то и чрута.

     
  • 1.60, ALex_hha (ok), 00:12, 13/06/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > Хотя если нужно всего пару однотипных контейнеров, за глаза хватит  чистого lxc.

    вы точно поняли зачем нужен сабж?

     

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


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