The OpenNET Project / Index page

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

Выпуск Docker 1.10. Перевод официальных образов Docker с Ubuntu на Alpine

06.02.2016 21:53

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

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

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

  • Поддержка расширенных средств безопасности: Возможность использования пространств имён идентификаторов пользователей (user namespaces) для формирования в контейнерах собственных наборов идентификаторов групп и пользователей (например, в каждом контейнере/пространстве имён может быть свой root). Применение профилей seccomp для фильтрации системных вызовов. Система плагинов авторизации, позволяющая выборочно ограничивать доступ к различным возможностям управляющего фонового процесса Docker;
  • Обеспечена привязка идентификаторов образов контейнеров к содержимому данных образов, по аналогии с тем как коммиты в Git представляют содержимое внутри коммита. Предложенное новшество позволяет гарантировать, что при указании идентификатора образа будет запущено именно то содержимое, которое предполагается;
  • В появившуюся в прошлом выпуске новую сетевую подсистему, предоставляющую средства для работы с виртуальными сетями и привязки к ним контейнеров, добавлена серия новых возможностей: поддержка связывания контейнеров с именами хостов в виртуальных сетях (--link db:production_postgres), задания видимых во всей сети псевдонимов контейнеров, создания внутренних сетей (флаг --internal), назначение контейнеру заданного IP-адреса, использование DNS для определения имён хостов контейнеров (вместо /etc/hosts), работающий со всеми современными ядрами Linux драйвер multi-host;
  • До трёх раз увеличена скорость выполнения операции "docker push", за счёт обработки слоёв в параллельном режиме. Операции "docker pull" также стали более быстрыми и надёжными, благодаря модернизации протокола и улучшению механизмов обработки сбоев;
  • Возможность изменения ресурсов контейнера на лету, например, при помощи команды "docker update" теперь можно изменить настройки потребления памяти без перезапуска контейнера;
  • Поддержка задания опций запуска управляющего фонового процесса в отдельном файле конфигурации и изменения настроек без перезапуска демона;
  • Обеспечена поддержка создания временных файловых систем через указание опции "--tmpfs" при запуске контейнера;
  • Добавлена порция новых параметров для ограничения дисковой активности: --device-read-bps, --device-write-bps, --device-read-iops, --device-write-iops и --blkio-weight-device;
  • Выпуск инструмента Docker Compose 1.6, позволяющего организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm. В новой версии упрощён запуск сложных распределённых приложений благодаря новым средствам для настройки сети и дисковых разделов. Разработчик может использовать единую конфигурацию для тестирования приложения на своей системе и для развёртывания в рабочем окружении со сложной конфигурацией сети и хранилища;
  • Выпуск инструмента Machine 0.6, предназначенного для быстрого развёртывание хостов в гостевых окружениях систем виртуализации VirtualBox, VMware, AWS, Digital Ocean и Microsoft Azure. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером. В новой версии значительно повышена надёжность работы под управлением VirtualBox и в Windows. Если в команде не указано имя VM, она теперь будет применена к VM, выбранной по умолчанию. Добавлена новая команда "provision", позволяющая повторить развёртывание после устранения причин сбоя или изменения конфигурации;
  • Выпуск инструмента Swarm 1.1, предоставляющего средства кластеризации для упакованных в контейнеры приложений. Swarm даёт возможность управлять кластером из нескольких хостов Docker (например, созданных с использованием Docker Machine) в форме работы с одним виртуальным хостом. Так как Swarm использует штатный Docker API, он может применяться для управления и другими поддерживающими данный API инструментами, такими как dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins. В новой версии обеспечена возможность автоматического перемещения контейнера на рабочий узел в случае сбоя текущего узла. Улучшены средства управления узлами, добавлена возможность повторной проверки перед переводом узла в категорию сбойных;

Отдельно можно отметить работу по переходу к формированию официальных образов контейнеров Docker с использованием компонентов минималистичного дистрибутива Alpine Linux, вместо пакетов Ubuntu. Alpine отличается задействованием системной библиотеки musl, набора утилит busybox и использованием при сборке патчей PaX и SSP (Stack Smashing Protection) для усиления безопасности. Использование Alpine позволит снизить размер системного окружения контейнера cо 188 Мб до 10 Мб. В настоящее время создатель Alpine Linux уже перешёл на работу в Docker и занимается адаптацией дистрибутива для нужд контейнерной виртуализации.

Кроме того, похожую идею микроконтейнеров для Docker развивает облачный сервис iron.io. Проект поставил перед собой задачу формирования как можно более компактных окружений, достаточных для работы приложений на тех или иных скриптовых языках программирования. Для загрузки уже доступна библиотека образов контейнеров с окружениями для языков программирования Perl, PHP, Ruby, Python, Go, Java, Mono, Scala и JavaScript/Node.js. Например, обычный образ контейнера с Node.js занимает 643 Мб, в то время как вариант от iron.io удалось урезать до 29 Мб. Образы включают только системные библиотеки и зависимости, необходимые для запуска программ на выбранных языках. Как и в случае с основной инициативой Docker, основа микроконтейнеров iron.io формируется на базе наработок Alpine Linux.

  1. Главная ссылка к новости (https://blog.docker.com/2016/0...)
  2. OpenNews: Выпуск rkt 1.0, конкурирующего с Docker инструментария управления контейнерами
  3. OpenNews: Docker поглотил Unikernel, технологию выполнения приложений поверх гипервизора
  4. OpenNews: Релиз CentOS Atomic Host, специализированной ОС для запуска контейнеров Docker
  5. OpenNews: Вышел дистрибутив Alpine Linux 3.3
  6. OpenNews: Docker-контейнеры для запуска популярных декстоп-приложений
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43828-docker
Ключевые слова: docker, virtual
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (10) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, SpiritOfStallman (ok), 00:38, 07/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    >В настоящее время создатель Alpine Linux и уже перешёл на работу в Docker

    У меня просто нету слов. Будет ли это означать, что и так не быстрое развитие станет еще медленнее? Замечательный дистрибутив же.

     
     
  • 2.2, Аноним (-), 00:50, 07/02/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Alpine быстрее и использует musl-libc
     
     
  • 3.19, EHLO (?), 21:44, 07/02/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Alpine быстрее и использует musl-libc

    плюс к тому busybox и отсутствие systemd

     
  • 3.23, Алконим (?), 19:08, 14/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос: если musl медленне glibc в 2 раза в среднем, то что именно в Alpine Linux быстрее?
     
     
  • 4.24, Аноним (-), 15:56, 28/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    оверхед на потребление/выделение ресурсов.
     
  • 2.6, Аноним (-), 02:22, 07/02/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Был дистрибутивом для шлюзов - станет дистрибутивом для контейнеров, очевидно же.
     
  • 2.11, Аноним (-), 11:00, 07/02/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет. Ответ в процитированной тобой фразе.
     
  • 2.20, Лютый жабист (?), 07:22, 08/02/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, вообще-то наоборот новость супер. Глядишь популярнее станет дистриб. Сейчас даже джавы нет в пакетах. :(
     

  • 1.21, Аноним (-), 07:42, 08/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прекрасная новость! Спасибо авторам докера
     
  • 1.22, Аноним (-), 14:26, 10/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ух ты, в кои-то веки работают над уменьшением жручести.
     

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



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

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