LINUX.ORG.RU

Открыт исходный код Docker

 , , , ,


1

3

Docker — контейнер исполняемых сред для ОС Linux.

Docker дополняет LXC (LinuX Containers) высокоуровневым API, который выполняется на уровне процессов. UNIX-процессы выполняются с жесткими гарантиями изоляции (isolation) и воспроизводимости (repeatability) на серверах.

Docker — отличный инструмент для автоматизации распределенных систем: развертывание крупномасштабных веб-инсталляций, кластеров баз данных, непрерываемых систем развертывания, приватных PaaS, сервис-ориентированных архитектур и т.д.

>>> Видео «Будущее Linux Containers»

>>> Подробности

★★

Проверено: Shaman007 ()

Поправьте зоголовок - кто открыл? Может лучше что-то типа «открыт».

anton_jugatsu ★★★★ ()

Очень высокая концентрация базвордов, можно этого как-то разбавить более техническими подробностями, всё-таки у нас сайт не для менеджеров?

Aceler ★★★★★ ()
Ответ на: комментарий от Aceler

Очень высокая концентрация базвордов

Для меня это ново, но мне интересна идея и я уже могу найти этому применение, в специфике — я не спец в этом.

Их сайт заполнен такими же баззвордами. Нужно смотреть видео, либо читать маны.

Вкратце: это что-то типа jails из FreeBSD.

gensym ★★ ()

https://github.com/dotcloud/docker/ язык go к успеху идет.

Срочно зовите того джависта из CERN сюда в тред, он вам объяснит почему надо писать на жабе)

bhfq ★★★★★ ()
Последнее исправление: bhfq (всего исправлений: 1)

Я сначала подумал про это:

$ aptitude show docker
Package: docker                          
New: yes
State: not installed
Version: 1.4-5
Priority: optional
Section: x11
Maintainer: Ari Pollak <ari@debian.org>
Architecture: amd64
Uncompressed Size: 90.1 k
Depends: libc6 (>= 2.7-1), libglib2.0-0 (>= 2.12.0), libx11-6
Conflicts: docker
Description: System tray for KDE3/GNOME2 docklet applications
 Docker is a docking application (WindowMaker dock app) which acts as a system
 tray for any desktop environment, allowing you to have a system tray without
 running the KDE/GNOME panel Docker was designed to work with Openbox 2, but it
 should work fine in any window manager.
DELIRIUM ★★★★★ ()
Ответ на: комментарий от gensym

вот пояснил бы мне зачем отдельная fs и тп? почему нельзя как-то более разумно? скажем было бы интересно просто иметь другую таблицу маршртизации для части процессов (что-то типа vrf lite в кисках) без всякого лишнего имиджа...

anonymous ()
Ответ на: комментарий от anonymous

зачем отдельная fs и тп?

Чтобы запускать на одном сервере много приложений и не иметь проблем с зоопарком версий библиотек и безопасностью. Ещё, видимо, чтобы деплоймент упростить: разработчик на своей машине может собрать image, который просто копируется на сервер и запускается без дополнительных телодвижений.

iley ()
Ответ на: комментарий от anonymous

... иметь другую таблицу маршртизации для части процессов ...

А что тебе сейчас мешает это сделать?

anonymous ()

Судя по сайту, это простой хелпер на питоне. Замена утилит lxc-*.

Что прикалывает, lxc работает на x86/x86_64 и arm, в то время как этот питоновый скрипт требует исключительно x86_64.

По моему, ерунда.

AVL2 ★★★★★ ()

Ждем следующей версии Go, когда 90% api поломают и Docker придется переписывать с нуля.

anonymous ()
Ответ на: комментарий от anonymous

У процесса нельзя сделать только личную таблицу маршрутизации. Можно сделать личные интерфейсы и таблицу маршрутизации (т.е. весь сетевой стек). А файловую систему, таблицу процессов, и имя хоста оставить общими.

Запустить процесс с личным сетевым стеком можно с помощью unshare -n command (util-linux-ng).

Перенести интерфейс из основного стека в личный можно с помощью ip link set eth3 netns command-pid (iproute2).

Интерфейс может присутствовать только в одном сетевом стеке. Но вроде в Cisco IOS интерфейс также может принадлежать либо глобальному (неименованному) vrf-у, либо одному именованному vrf-у.

iliyap ★★★ ()
Ответ на: комментарий от iliyap

У процесса нельзя сделать только личную таблицу маршрутизации. Можно сделать личные интерфейсы и таблицу маршрутизации (т.е. весь сетевой стек). А файловую систему, таблицу процессов, и имя хоста оставить общими.

Никогда этого не делал, но разве нельзя создать бридж и все, что на него сыпется перенаправить в свою таблицу маршрутизации?

Или использовать модуль нетфильтра для маркировки пакетов определенного процесса и отправлять все эти пакеты на свои таблицы маршрутизации?

имхо все это вполне реально. Вопрос только зачем?

Интерфейс может присутствовать только в одном сетевом стеке. Но вроде в Cisco IOS интерфейс также может принадлежать либо глобальному (неименованному) vrf-у, либо одному именованному vrf-у.

Ну так для этого и придумали бриджи.

AVL2 ★★★★★ ()
Ответ на: комментарий от Komintern

Тем, что это линукс, а не система, которая валится при вытаскивании флешки?

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

я думаю что применение эта штука найдет больше в серверном сегменте, всякие хостинги и виртуалки. а вообще - толсто!

Komintern ★★★★★ ()
Ответ на: комментарий от anonymous

вот пояснил бы мне зачем отдельная fs и тп? почему нельзя как-то более разумно? скажем было бы интересно просто иметь другую таблицу маршртизации для части процессов (что-то типа vrf lite в кисках) без всякого лишнего имиджа...

а зачем может потребоваться отдельная таблица маршрутизации для процесса?

Вот контейнер это дело. Свои библиотеки, свой софт, все по полочкам и практически бесплатно.

AVL2 ★★★★★ ()

can run on any x64 machine with a modern linux kernel

Потрясающая универсальность!

buddhist ★★★★★ ()
Ответ на: комментарий от Komintern

я думаю что применение эта штука найдет больше в серверном сегменте, всякие хостинги и виртуалки. а вообще - толсто!

Да нет. В серверном, конечно, в первую очередь, но в неменьшей степени и на десктопе. Возможность бесплатной в части потребления ресурсов виртуализации системы из коробки часто востребована.

AVL2 ★★★★★ ()

Это что-то типа vagrant на основе lxc?

drakmail ★★★★ ()

распределленых

==> распределённых

northerner ★★★ ()
Ответ на: комментарий от AVL2

Тем, что это линукс, а не система, которая валится при вытаскивании флешки?

Как будто Linux уже стал образцом стабильности.

rtvd ★★★★★ ()
Последнее исправление: rtvd (всего исправлений: 1)
Ответ на: комментарий от gensym

Вкратце: это что-то типа jails из FreeBSD.

jails это lxc и есть.

kernel ★★☆ ()

Эти контейнеры работают как KVM? Загружают образ с ФС, грузят загрузчик, ядро и т.п.? Или Docker работает как sandbox, что-то вроде доведённого до ума chroot?

lucentcode ★★★★★ ()

Господа, а можно кратко объяснить в чем отличие OpenVZ? Я понимаю, что вопрос глупый, но этих всяких систем виртуализации под линукс много всяких разных, а я до сих пор так и не разобрался.

uhbif19 ()
Ответ на: комментарий от uhbif19

OpenVZ заметно шире этой реализации, но от требует специально модифицированноо ядра для своей работы. Это использует lxc - которая входит в состав ядра, и создатели openvz участвую в разработке lxc то же. Ну и главная суть, openvz реализует все окружение, кроме ядра. lxc изолированно заметно хуже, но может быть использовано на любом ядре linux. Это своего рода песочница на lxc через питон

SyCraft ()
Ответ на: комментарий от iliyap

Это можно сделать и без lxc, чистым netfilter.

ip ru + fwmark

iptables -t mangle -m owner

Хотя, --pid-owner выпилили вместе с --cmd-owner и --sid-owner ;)

Ну можно процесс запускать под спецюзером или спецгруппой и использовать --uid-owner и --gid-owner соответственно. Если для gid-owner матчатся все из group vector, совсем хорошо.

dk2 ()
Ответ на: комментарий от SyCraft

OpenVZ заметно шире этой реализации

А конкретно чем?

uhbif19 ()
Ответ на: комментарий от AVL2

Оу, слушай, покажи где ты видел простой хелпер на питоне замену lxc-*?.. А то я свой собираюсь писать.

ei-grad ★★★★★ ()
Последнее исправление: ei-grad (всего исправлений: 1)
Ответ на: комментарий от ei-grad

Разработчики lxc сами планируют перевести lxc* утилиты с шелла на новый API + питон. http://www.mail-archive.com/lxc-devel@lists.sourceforge.net/msg01843.html

---

We are now in the process of replacing the old code (C and shell alike) to use the liblxc API so we can clear out some old code from the tree.

...

Technically, porting to the API at the moment can either be done in C or python. As LXC doesn't use any of the fancy C libraries like glib to make the developer's life easier, the easiest way to code something nowadays is with python.

I perfectly realize that this means we'll start depending on python3 (core only, no extra modules) for our tools and I don't really think it'll be a problem for > 90% of our users, most of which will probably like being able to reuse that code in their own script and be able to easily extend our tools.

---

В частности уже переведена тулза lxc-ls https://github.com/lxc/lxc/blob/staging/src/lxc/lxc-ls

Правда на lxc-python сейчас стоит warning что он нестабилен.

rwman ()
Ответ на: комментарий от SyCraft

lxc входит в состав ядра

С какой версии?

anonymous ()
Ответ на: комментарий от bhfq

язык go

Holly sh... !!

Ну теперь осталось только на хаскеле написать браузер, или типа того ...

s9gf4ult ★★ ()
Ответ на: комментарий от anonymous

а, т.е в linux наконец-то появилась открытая технология навроде той, что в BSD была уже давно, но при этом BSD убога? )

Komintern ★★★★★ ()
Последнее исправление: Komintern (всего исправлений: 1)
Ответ на: комментарий от anonymous

LXC основана на технологии ядра Linux под названием cgroups (добавлено в версии 2.6.29). Также используется функциональность изоляции namespaces.

SyCraft ()
Ответ на: комментарий от ei-grad

Оу, слушай, покажи где ты видел простой хелпер на питоне замену lxc-*?.. А то я свой собираюсь писать.

да вроде как этот самый докер.

AVL2 ★★★★★ ()
Ответ на: комментарий от ei-grad

Из треда сделал вывод что у многих, бедон головного мозга, а у некоторых и маленькое ведерко

st4l1k ★★ ()

Честно говоря не впечатляет. Думаю пара скриптов поверх systemd-nspawn и libcgroup будут не хуже. Но сырцы любопытно посмотреть.

true_admin ★★★★★ ()

Странно, а почему никто не заметил что там открыли полностью DocCloud?

UnnamedPB ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.