Представлен (https://blog.docker.com/2016/04/docker-engine-1-11-runc/) релиз инструментария для управления изолированными Linux-контейнерами Docker 1.11 (http://www.docker.com/), предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. В частности, Docker позволяет, не заботясь о формировании начинки контейнера, запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Код Docker написан на языке Go и распространяется (https://github.com/dotcloud/docker/) под лицензией Apache 2.0.Docker 1.11 стал первый выпуском, по умолчанию перешедшим на легковесный runtime runC (http://runc.io/) и управляющий инструментарий containerd (https://containerd.tools/), совместимые со спецификациями OCI (Open Container Initiative (https://www.opencontainers.org/)), определяющими единый формат контейнеров и универсальный runtime для их запуска.
runC (http://runc.io/) предоставляет обособленный набор компонентов для запуска контейнеров на широком спектре систем, позволяя обойтись без внешних зависимостей, так как поддержка различных технологий изоляции встраивается в runtime контейнера. Для организации работы с контейнерами runC поддерживает пространства имён Linux (namespaces), различные средства повышения безопасности Linux (SELinux, Apparmor, seccomp, cgroups, capability, pivot_root, сброс uid/gid), live-миграцию (используется CRIU), возможности создания контейнеров в Windows 10, поддержку интеграции с systemd и переносимые профили производительности (предоставлены Google).
Containerd включает фоновый процесс и клиент командной строки, использующий runC для запуска контейнеров, соответствующих спецификации OCI. Из расширенных возможностей containerd отмечается поддержка seccomp, непривилегированных контейнеров (user namespace), применение criu для клонирования и live-миграции. При одновременном запуске 1000 контейнеров containerd обеспечивает производительность запуска в 126-140 контейнеров в секунду.
Движок Docker теперь работает в качестве надстройки над containerd, что позволяет сохранить привычный для пользователей Docker интерфейс. Интеграция containerd позволила существенно упростить кодовую базу Docker и избавиться от ряда проблем. Кроме того, разделение Docker на независимые слои упростило сопровождение продукта и существенно повысило его качество. Особое внимание было уделено производительности - задействование дополнительных механизмов межпроцессного взаимодействия не только не привело к замедлению работы, но и ускорило работу благодаря распараллеливанию операций создания контейнеров.
<center><img src="https://www.opennet.dev/opennews/pics_base/0_1460652817.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></center>
Из других новшеств (https://github.com/docker/docker/releases/tag/v1.11.0) Docker 1.11 можно отметить:
- Поддержка балансировки нагрузки через распределение запросов к контейнерам в режиме "round robin" с использованием DNS;- Экспериментальная поддержка VLAN в сетевой инфраструктуре контейнеров;
- Возможность использования аппаратных устройств Yubikey для формирования цифровых подписей для образов контейнеров;
- Поддержка привязки произвольных меток в формате ключ/значение к сетям и дисковым разделам по аналогии с привязкой меток к контейнерам и образам;
- Улучшена обработка состояния нехватки дискового пространства в хранилищах на базе device mapper;- Выпуск инструмента Docker Compose 1.7 (https://github.com/docker/compose/releases/tag/1.7.0), позволяющего организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm. В новой версии добавлен команда "docker-compose exec" (аналог "docker exec") и опция "--build" для команды "docker-compose up", инициирующая предварительный запуск "docker-compose build";
- Выпуск инструмента Machine 0.7 (http://github.com/docker/machine), предназначенного для быстрого развёртывание хостов в гостевых окружениях систем виртуализации VirtualBox, VMware, AWS, Digital Ocean и Microsoft Azure. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером. В новой версии драйвер Microsoft Azure переведён на новый Azure API;- Выпуск инструмента Swarm 1.2 (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.2.0) стабилизирована поддержка перепланировки, обеспечивающей автоматическое перемещение контейнера на рабочий узел в случае сбоя текущего узла.
URL: https://blog.docker.com/2016/04/docker-engine-1-11-runc/
Новость: http://www.opennet.dev/opennews/art.shtml?num=44246
Только что запустил новый кластер. Придется переделывать.
закономерно. те, кто пишут докер, еще учатся, как это делать. я пока не стал связываться с докер и мои контейнеры просто работает.
> закономерно. те, кто пишут докер, еще учатся, как это делать. я пока
> не стал связываться с докер и мои контейнеры просто работает.вам скорее всего докер не нужен.
>> закономерно. те, кто пишут докер, еще учатся, как это делать. я пока
>> не стал связываться с докер и мои контейнеры просто работает.
> вам скорее всего докер не нужен.пожалуй. я не очень понимаю его преимущества. но в конечном итоге это ведь всего лишь способ запуска приложений, а не самоцель.
Их преимущество - в том что они умеют пиариться и разводить инвесторов на бабки. Остальное они делают хуже. Змби нормально рипать в *никсах - что вы, как можно. Зато поддержка десятки. Очень актуально при тамоншних лимитах на 10 TCP соединений.
> я пока не стал связываться с докер и мои контейнеры просто работают.Кстати да. Как раньше гоняли в chroot-окружениях, так и сейчас гоняем.
Но у Docker, всё же надо признаться, есть потенциал. Лично меня радует связка chroot+LXC. И это уже сейчас можно использовать для более полной изоляции приложений.
И я так погляжу, они ещё работают над тем, чтобы автоматически сеть между контейнерами развёртывать. Почему бы и нет - хуже не будет точно.
> Но у Docker, всё же надо признаться, есть потенциал. Лично меня радует
> связка chroot+LXC. И это уже сейчас можно использовать для более полной
> изоляции приложений.s/более/чуть &/
Чуть более - это в смысле, что chroot-окружения и так обеспечивали достаточный уровень изоляции, или что оба плохи?
> закономерно. те, кто пишут докер, еще учатся, как это делать.При том - нагло врут что приложения для докера переделывать не надо. А когда их тыкают носом что при их подходах приложения утопают в зомби, поскольку PID=1 само приложение и оно ничего про борьбу с зомби не знает - они мямлят что таких приложений мало и вообще, вам что, сложно написать обработчик сигналов и риппер зомби?! В общем, типичные ГОпники с громким маркетингом.
Вообще-то если делается fork, то надо waitpid, так в очень-очень-очень стародавние времена было, еще задолго до всяких докеров и контейнеров. Еще половина тутошних комментаторов не родилась, а уже такое было в манах, вашумать. :)
Конечно, если родитель завершается, то все зомби уйдут к #1, но если нет, и работает "вечно", то тоже должен waitpid, даже если он не #1.
С такими "шатаниями" из стороны в стороны данный продукт для продакшена крайне не желательно использовать, только для "посмотреть".
ну вам то веднее, не то что ребятам из гугла, яндейкса и байду.
И давно начали "ребята из Гугла и Яндекса" использовать эту байду в продакшн? Ребята из Байду могут хоть строчить вприсядку -- нашли с кем сравнивать
>containerdГде-то вдалеке пронеслась едва различимая тень Поттеринга...
вамдъ показалосьдъ
Судя, по комменту ниже, тень Поттеринга показалась не одному лишь гражданину Шталю. Больше похоже на мираж.Ох, не к добру такое видЕние...
>containerdя сначала решил, что очередная поделка от Лёни
>> ...поддержку интеграции с systemd и переносимые профили производительности (предоставлены Google...где-то там он всё равно отметился))
> При одновременном запуске 1000 контейнеров containerd обеспечивает производительность запуска в 126-140 контейнеров в секунду.Даже если это и Лёнина поделка. Я уже люблю это
Пока ты её любишь.. она уже перестала ломаться при апдейте на новую версию?
> Даже если это и Лёнина поделка. Я уже люблю этоЧто именно имеется ввиду?
Поттеринг не имеет отношения к этому коду, containerd написан теми же программистами Docker (собственно, на вебсайте вверху и написано - containerd by docker).
во уже прилетели пакеты
> во уже прилетели пакетысортировщиком работаешь?
Нет, кассиром. Пакет нужен?
> Нет, кассиром. Пакет нужен?Очки бы.
https://www.youtube.com/watch?v=PivpCKEiQOQ> позволила существенно упростить кодовую базу Docker и избавиться от ряда проблем
От каких именно?
> Поддержка балансировки нагрузки ... с использованием DNS
Не понял. А раньше разве нельзя балансировать было?
"контейнеры", "не заботясь", "запускать произвольные" и прочие buzzwords.
такое ощущение что айти скатывается к уровню пойти пожрать в макдональдс
Ключевые слова "не заботясь". Облака - это тоже из серии "не заботясь получать зарплату".
> такое ощущение что айти скатывается к уровню пойти пожрать в макдональдсХорошее описание команды докера.
https://zwischenzugs.wordpress.com/2016/04/12/hitler-uses-do.../Isolation my ass!