Доступен (https://github.com/dotcloud/docker/blob/release/CHANGELOG.md) новый значительный выпуск инструментария для управления изолированными Linux-контейнерами Docker (https://github.com/dotcloud/docker). Docker дополняет инструментарий LXC более высокоуровневым API, позволяющий манипулировать контейнерами на уровне изоляции отдельных процессов. В частности, Docker позволяет не заботясь о формировании начинки контейнера запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров.
Особенности выпуска Docker 0.7.0:- Поддержка работы поверх немодифицированных современных ядер Linux и в штатных окружениях всех крупных дистрибутивов Linux;
- Поддержка использования разных системы хранения, которые могут подключаться как плагины. Среди поддерживаемых драйверов хранения заявлены aufs, device mapper, vfs и btrfs.
- Добавлена возможность оформления контейнеров, содержащих сложные программные стеки, через связывание между собой уже существующих контейнеров, содержащих составные части формируемого стека;
- Возможность присвоения контейнерам произвольных запоминающихся имён для упрощения организации работы;
- Расширенные средства перенаправления портов, поддерживающие привязку к отдельным сетевым интерфейсам и ограничение доступа к портам;
- Offline-режим перемещения содержимого образов в/из ФС без потери информации.Код Docker написан на языке Go и распространяется (https://github.com/dotcloud/docker/) под лицензией Apache 2.0. Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Для создания контейнеров используются скрипты lxc (http://lxc.sourceforge.net/). Для формирования контейнера достаточно загрузить базовый образ окружения (docker pull base), после чего можно запускать в изолированных окружениях произвольные приложения (например, для запуска bash можно выполнить "docker run -i -t base /bin/bash").
Основные возможности Docker:
- Возможность размещения в изолированном окружении разнородной начинки, включающей различие комбинации исполняемых файлов, библиотек, файлов конфигурации, скриптов, файлов jar, gem, tar и т.д.
- Поддержка работы на любом компьютере на базе архитектуры x86_64 с системой на базе современного ядра Linux, начиная от ноутбуков, заканчивая серверами и виртуальными машинами.
- Использование легковесных контейнеров для изоляции процессов от других процессов и основной системы.
- Так как контейнеры используют свою собственную самодостаточную файловую систему, не важно где, когда и в каком окружении они запускаются.- Изоляция на уровне файловой системы: каждый процесс выполняется в полностью отдельной корневой ФС;
- Изоляция ресурсов: потребление системных ресурсов, таких как расход памяти и нагрузка на CPU, могут ограничиваться отдельно для каждого контейнера с использованием cgroups;
- Изоляция на уровне сети: каждый изолированный процесс имеет доступ только к связанному с контейнером сетевому пространству имён, включая виртуальный сетевой интерфейс и привязанный к нему IP-адрес;- Корневая файловая система для контейнеров создаётся с использованием механизма copy-on-write (отдельно сохраняются только изменённые и новые данные), что позволяет ускорить развёртывание, снижает расход памяти и экономит дисковое пространство;
- Все стандартные потоки (stdout/stderr) каждого выполняемого в контейнере процесса накапливаются и сохраняются в виде лога;
- Изменённая файловая система одного контейнера, может использоваться в качестве основы для формирования новых базовых образов и создания других контейнеров, без необходимости оформления шаблонов или ручной настройки состава образов;
- Возможность использования интерактивной командной оболочки: к стандартному вводу любого контейнера может быть привязан псевдо-tty для запуска shell.URL: https://github.com/dotcloud/docker/blob/release/CHANGELOG.md
Новость: http://www.opennet.me/opennews/art.shtml?num=38524
Редхет не осилил сканпелировать aufs и всунул в докер "поддерживаемые драйвера хранения", лучше бы в системды свою замену докеру написали, а оригинал не трогали.
> РедхетПочему редхет, а не интел, гугл или каноникал?
> не осилил сканпелировать aufs
Линус запрещает любые попытки сделать overlay fs на уровнея ядра.
> лучше бы в системды свою замену докеру написали, а оригинал не трогали.
Вообще-то, docker изначально создавался как "свой, принципиально новый systemd, но на принципиально новом языке и без поддержки инициализации".
> Линус запрещает любые попытки сделать overlay fs на уровнея ядра.И он определенно прав, судя по фееричным проблемам docker при попытке запуска поверх корня на btrfs из-за кривизны aufs.
> Почему редхет, а не интел, гугл или каноникал?потому что в одной из новостей о rhel 6.5 было о нём написано
> Линус запрещает любые попытки сделать overlay fs на уровнея ядра.
выглядит как чушь, поскольку никто не требует докер в ядро включать
> новом языке и без поддержки инициализации".
отличная идея
> потому что в одной из новостей о rhel 6.5 было о нём написаноИ что?
> выглядит как чушь, поскольку никто не требует докер в ядро включать
Как это отрицает завязанность докера на функционал ядра?
> отличная идея
Переписать с нуля что-то уже существующее - всегда отличная идея, Леннарт подтверждает.
> Как это отрицает завязанность докера на функционал ядра?докер лишь запускалка контейнеров, ФУНКЦИОНАЛ ты, ёпта
>> Как это отрицает завязанность докера на функционал ядра?
> докер лишь запускалка контейнеровВот-вот. И поэтому без соответствующих фич в ядре он - ноль без палочки.
>Линус запрещает любые попытки сделать overlay fs на уровня ядра.А можно вот об этом поподробнее? WHY?
> А можно вот об этом поподробнее?Погуглите истории попыток включения UnionFS, AUFS и OverlayFS в мейнстримное ядро.
> WHY?
Когда Линус показывает свой средний палец, технические аргумент излишни.
Skype в нём проверял кто?
Работает, вот только вряд ли вы контейнер сможете настроить
> вряд ли вы контейнер сможете настроитьА что, с этим какие-то проблемы?
Ну да, с вашими руками.
Что не так с нашими руками?
btrfs удалите. Нету там его.
btrfs - это режим с отключенным aufs. Потому что при попытке использовать aufs (который по умолчанию юзается в докере) поверх btrfs docker падает.
т.е. чтобы использовать btrfs нужно чтобы /var/lib/docker был на btrfs?
Да. И наоборот - если он будет _не_ на btrfs, на нем будет использоваться aufs.
Народ обьясните на пальцах чем от OpenVZ отличается и что общего (кроме namespaces и cgroups)?
http://openvz.livejournal.com/45647.htmlЕсли это "многабукав", то можно кратко одной фразой оттуда
OpenVZ is essentially LXC++, because it adds some more stuff that are not (yet) available in the upstream kernel (such as stronger isolation, better resource accounting, plus some auxiliary ones like ploop).