Как стать автором
Обновить

Комментарии 15

Я правильно понимаю, что эта штука делает примерно то же самое, что и OpenVZ?
Правильно. Мы как-то решали, что использовать — OpenVZ или LXC и выбрали второе, т.к. OpenVZ ну уж очень плохо поддерживался и в дистрибутивах его было почти не найти. Это было около двух лет назад… Теперь намучившись наигравшись с LXC переехали на vmware. Не православно, но уж очень удобно. Смотрю на DOCKER и оно выглядит весьма привлекательным, спасибо за статью!
В случае использования OpenVZ работает только один метод, использовать CentOS как основной хост.
Совершенно необязательно. Можно любой дистрибутив, который способен работать на openvz/rhel5-ядре — например, Ubuntu Lucid.
Почти. В отличии от openvz эту штуку можно использовать для изолирования и контроля отдельных приложений. А не только для изолирования окружения.
По-моему скорее напоминает jail(8) из FreeBSD
Судя по всему, это несколько более крутая штука. Скорее напоминает Vagrant для LXC.

Больше бы стоило, наверное, отметить такие фичи:
* можно запустить отдельную команду (sh -c "/bin/echo Hello | tee /etc/motd") в контейнере — эта выполняется за 0.1сек
* очень легко создавать новые контейнеры. Можно, например, создать контейнер с результатами работы вышеуказанной команды — выполняется еще быстрее.
* размер контейнера — всего лишь дифф по сравнению с базовым (на самом деле, чуть больше — для результата вышеуказанной команды ~20кб)
* контейнеры можно генерировать и автоматизированно — указываем в Dockerfile базовый образ, какие команды запустить, какие порты высунуть и через несколько секунд получаем готовый образ
* контейнеры можно публиковать

Т.е. контейнеры по сравнению с OpenVZ очень и очень дешевые, да и на порядок удобнее с ними работать.

Сами разработчики Docker позиционируют его как виртуализацию на уровне сервисов, а не на уровне серверов как обычно бывает, и по-моему они в этом преуспели.

На сайте у них есть примеры как упаковать в контейнер, скажем web-приложение, но по идее это же можно делать и, скажем, дженкинсом.
Ровно так же продукты «Параллельса» работают.
Вот бы толковый гайд по LXC в целом для ещё не разбирающихся…
В посредственной документации LXC Ubuntu есть ссылочка How to LXC — this is one of the best documents available. Кратко, но исчерпывающе :) Вплоть до конфигурации ядра для работы с LXC.
С docker-ом этот гайд похоже не нужен.
Самый главный вопрос, правда ли, что root в LXC (даже с помощью Docker) = root в хостовой системе?
Похоже на то:

$  sudo docker run -d busybox sleep 100                                                                                               
WARNING: Docker detected local DNS server on resolv.conf. Using default external servers: [8.8.8.8 8.8.4.4]
987151c1491d
$  ps -ef | grep sleep                                                                                                                
root     25705   932  0 13:06 ?        00:00:00 lxc-start -n 987151c1491d590aef066bf6e4ddc3635e09706a3ebd3bde0f068dd5c7dc4bf8 -f /var/lib/docker/containers/987151c1491d590aef066bf6e4ddc3635e09706a3ebd3bde0f068dd5c7dc4bf8/config.lxc -- /.dockerinit -g 172.17.42.1 -e HOME=/ -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -e container=lxc -e HOSTNAME=987151c1491d -- sleep 100
root     25712 25705  0 13:06 ?        00:00:00 sleep 100
timur    25744 19454  0 13:07 pts/3    00:00:00 grep sleep
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации