URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 106631
[ Назад ]

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

Отправлено opennews , 07-Фев-16 00:38 
Представлен (https://blog.docker.com/2016/02/docker-1-10/) релиз инструментария для управления изолированными Linux-контейнерами Docker 1.10 (http://www.docker.com/), предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. В частности,  Docker  позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Код Docker написан на языке Go и распространяется (https://github.com/dotcloud/docker/) под лицензией Apache 2.0.


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

Из добавленных в Docker 1.10 новшеств (https://github.com/docker/docker/blob/master/CHANGELOG.md) можно отметить:

-  Поддержка (https://blog.docker.com/2016/02/docker-engine-1-10-security/) расширенных средств безопасности: Возможность использования пространств имён для идентификаторов пользователей (user namespaces) для формирования в контейнерах собственных наборов идентификаторов групп и пользователей (например, в каждом контейнере/пространстве имён может быть свой root). Применение профилей seccomp для фильтрации системных вызовов. Система плагинов авторизации, позволяющая выборочно ограничивать доступ к различных возможностям управляющего фонового процесса Docker;

-  Обеспечена привязка идентификаторов образов контейнеров к содержимому данных образов, по аналогии с тем как коммиты в Git представляют содержимое внутри коммита. Указанное новшество  позволяет гарантировать, что указав идентификатор образа будет запущено именно то содержимое, которое предполагается;
-  В появившуюся в прошлом выпуске новую сетевую подсистему, предоставляющую средства для работы с виртуальными сетями и привязки к ним контейнеров, добавлена серия новых возможностей: поддержка связывания контейнеров с именами хостов в виртуальных сетях (--link db:production_postgres), задания видимых во всей сети псевдонимов контейнеров, создания внутренних сетей (флаг --internal), назначение контейнеру заданного IP-адреса, использование DNS для определения имён хостов контейнеров (вместо /etc/hosts), работающий со всеми современными ядрами Linux драйвер multi-host;

-  До трёх раз увеличена скорость выполнения операции push, за счёт обработки слоёв в параллельном режиме. Операции poll также стали более быстрыми и надёжными, благодаря модернизации протокола и улучшению механизмов обработки сбоев;

-  Возможность изменения ресурсов контейнера на лету, например,  при помощи команды "docker update" теперь можно изменить настройки потребления памяти без перезапуска контейнера;

-  Поддержка задания опций запуска управляющего фонового процесса в отдельном файле конфигурации и перезагрузки настроек без перезапуска демона;
-  Обеспечена поддержка создания временных файловых систем через указание опции "--tmpfs" при запуске контейнера;

-  Добавлена порция новых параметров для ограничения дисковой активности: --device-read-bps, --device-write-bps, --device-read-iops, --device-write-iops и  --blkio-weight-device;

-  Выпуск инструмента Docker Compose 1.6 (https://blog.docker.com/2016/02/compose-1-6/), позволяющего организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm. В новой версии упрощён запуск сложных распределённых приложений благодаря новым редствам  для настройки сети и дисковых разделов. Разработчик может использовать единую конфигурацию для тестирования приложения на своей системе и для развёртывания в рабочем окружении со сложной конфигурацией сити и хранилища;

- Выпуск инструмента Machine 0.6 (http://github.com/docker/machine), предназначенного для быстрого развёртывание хостов в гостевых окружениях систем виртуализации VirtualBox,  VMware, AWS, Digital Ocean и Microsoft Azure. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером.  В новой версии значительно повышена надёжность работы под управлением VirtualBox и  в Windows. Если в команде не указано имя VM, она теперь будет применена к VM, выбранной по умолчанию. Добавлена новая команда "provision", позволяющая повторить развёртывание после устранения причин сбоя или изменения конфигурации;

-  Выпуск инструмента Swarm 1.1 (https://github.com/docker/swarm/), предоставляющего средства кластеризации для упакованных в контейнеры приложений. Swarm даёт возможность управлять кластером из нескольких хостов Docker (например, созданных с использованием Docker Machine) в форме работы с одним виртуальным хостом. Так как Swarm использует штатный Docker API, он может применяться для управления и другими поддерживающими данный API инструментами, такими как  dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins. В новой версии (https://github.com/docker/swarm/releases/tag/v1.1.0)

Отдельно можно отметить работу (https://www.brianchristner.io/docker-is-moving-to-alpine-linux/) по переводу Docker на использование компонентов минималистичного дистрибутива Alpine Linux (http://alpinelinux.org) для формирования официальных образов контейнеров, вместо ныне используемых пакетов Ubuntu. Alpine отличается задействованием системной библиотеки musl (https://www.opennet.dev/opennews/art.shtml?num=39365), набора утилит busybox и использованием при сборки патчей PaX и SSP (Stack Smashing Protection) для усиления безопасности. Использование Alpine позволит снизить размер системного окружения контейнера cо 188 Мб до 10 Мб. В настоящее время создатель  Alpine Linux и уже перешёл на работу в Docker и занимается адаптацией дистрибутива для нужд контейнерной виртуализации.


Кроме того, идею микроконтейнеров для Docker развивает (http://www.iron.io/blog/2016/01/microcontainers-tiny-portabl...) облачный сервис iron.io. Проект поставил перед собой задачу формирования как можно более компактных окружений, достаточных для работы приложений на тех или иных скриптовых языках программирования.  Для загрузки
уже доступна (https://github.com/iron-io/dockers) библиотека образов контейнеров с окружениями для языков программирования Python, PHP, Ruby, Python, Go, Java, Mono, Scala и JavaScript/Node.js. Например, обычный образ контейнера с Node.js занимает 643 Мб, в то время как вариант от iron.io удалось урезать до 29 Мб. Образы включают только самые необходимые системные библиотеки и зависимости, необходимые для запуска программ на выбранных языках. Как и в случае с основной инициативой Docker, основа микроконтейнеров iron.io формируется на базе наработок Alpine Linux.

URL: https://blog.docker.com/2016/02/docker-1-10/
Новость: http://www.opennet.dev/opennews/art.shtml?num=43828


Содержание

Сообщения в этом обсуждении
"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено SpiritOfStallman , 07-Фев-16 00:38 
>В настоящее время создатель Alpine Linux и уже перешёл на работу в Docker

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


"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Аноним , 07-Фев-16 00:50 
Alpine быстрее и использует musl-libc

"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено EHLO , 07-Фев-16 21:44 
>Alpine быстрее и использует musl-libc

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


"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Алконим , 14-Фев-16 19:08 
Вопрос: если musl медленне glibc в 2 раза в среднем, то что именно в Alpine Linux быстрее?

"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Аноним , 28-Фев-16 15:56 
оверхед на потребление/выделение ресурсов.

"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Аноним , 07-Фев-16 02:22 
Был дистрибутивом для шлюзов - станет дистрибутивом для контейнеров, очевидно же.

"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Аноним , 07-Фев-16 11:00 
Нет. Ответ в процитированной тобой фразе.

"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Лютый жабист , 08-Фев-16 07:22 
Ну, вообще-то наоборот новость супер. Глядишь популярнее станет дистриб. Сейчас даже джавы нет в пакетах. :(

"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Аноним , 08-Фев-16 07:42 
Прекрасная новость! Спасибо авторам докера

"Выпуск Docker 1.10. Перевод официальных образов Docker с Ubu..."
Отправлено Аноним , 10-Фев-16 14:26 
Ух ты, в кои-то веки работают над уменьшением жручести.