docker репозиторий hub - Что добавляет Docker в lxc-tools (инструменты LXC для пользовательского пространства)?




3 Answers

Из Docker FAQ :

Docker не является заменой для lxc. «lxc» относится к возможностям ядра linux (в частности, пространств имен и групп управления), которые позволяют изолировать изолированные процессы и контролировать распределение ресурсов.

В дополнение к этой низкоуровневой базе функций ядра Docker предлагает инструмент высокого уровня с несколькими мощными функциями:

  • Переносное развертывание на разных машинах. Docker определяет формат для объединения приложения и всех его зависимостей в один объект, который может быть передан на любую машину с поддержкой докеров и выполнен там с гарантией того, что среда выполнения, подверженная действию приложения, будет одинаковой. Lxc реализует технологию обработки песочницы, которая является важным предварительным условием для переносного развертывания, но этого недостаточно для переносного развертывания. Если вы отправили мне копию вашего приложения, установленного в пользовательской конфигурации lxc, она почти наверняка не будет работать на моей машине так, как она есть на вашем, потому что она привязана к конкретной конфигурации вашего компьютера: сети, хранилища, регистрации, дистрибутива, и т. д. Docker определяет абстракцию для этих параметров для конкретной машины, так что один и тот же контейнер докеров может работать без изменений - на многих разных машинах с множеством различных конфигураций.

  • Применение ориентированное. Docker оптимизирован для развертывания приложений , в отличие от машин. Это отражено в его API, пользовательском интерфейсе, философии дизайна и документации. Напротив, вспомогательные скрипты lxc сосредотачиваются на контейнерах как на легких машинах - в основном на серверах, которые быстрее загружаются и нуждаются в меньшем объеме работы. Мы думаем, что контейнеров больше, чем просто.

  • Автоматическая сборка . Docker включает в себя инструмент для разработчиков для автоматической сборки контейнера из исходного кода с полным контролем над зависимостями приложений, инструментами сборки, упаковкой и т. Д. Они могут свободно использовать make, maven, chef, puppet, salt, debian packages, rpms, source tarballs или любую комбинацию из вышеперечисленного, независимо от конфигурации машин .

  • Versioning. Docker включает git-подобные возможности для отслеживания последовательных версий контейнера, проверки различий между версиями, фиксации новых версий, откатывания назад и т. Д. История также включает в себя как сборку контейнера и кем, так что вы получаете полную прослеживаемость с производственного сервера вплоть до разработчика. Docker также реализует инкрементные загрузки и загрузки, аналогичные «git pull», поэтому новые версии контейнера могут быть переданы путем отправки diff.

  • Повторное использование компонентов. Любой контейнер может использоваться как «базовое изображение» для создания более специализированных компонентов. Это можно сделать вручную или как часть автоматической сборки. Например, вы можете подготовить идеальную среду python и использовать ее в качестве базы для 10 различных приложений. Ваша идеальная настройка postgresql может быть повторно использована для всех ваших будущих проектов. И так далее.

  • Совместное использование. Docker имеет доступ к публичному реестру ( https://registry.hub.docker.com/ ), где тысячи людей загружают полезные контейнеры: что-то из redis, couchdb, postgres для irc bouncers для серверов приложений rails для доступа к базовым изображениям для различные дистрибутивы. Реестр также включает официальную «стандартную библиотеку» полезных контейнеров, поддерживаемых командой докеров. Сам реестр является открытым исходным кодом, поэтому каждый может развернуть свой собственный реестр для хранения и передачи личных контейнеров, например, для внутренних развертываний серверов.

  • Инструментальная экосистема. Docker определяет API для автоматизации и настройки создания и развертывания контейнеров. Существует огромное количество инструментов, интегрирующих с докером, чтобы расширить свои возможности. PaaS-подобное развертывание (Dokku, Deis, Flynn), многоузловая оркестровка (маэстро, соль, мезо, openstack nova), панели управления (докер-ui, горизонт открытой стопы, верфь), управление конфигурацией (шеф-повар, марионетка), непрерывная интеграция (jenkins, strider, travis) и т. д. Докер быстро зарекомендовал себя как стандарт для инструментов на контейнерах.

Надеюсь, это поможет!

registry search

Если вы посмотрите на функции Docker, большинство из них уже предоставлено LXC.

Итак, что добавляет Докер? Почему я должен использовать Docker над обычным LXC?




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

LXD теперь реализует репозиторий для изображений контейнеров LXC, которые пользователь может нажать / вытащить, чтобы способствовать или повторно использовать.

LEST RXA LXD теперь позволяет локально и удаленно создавать / развертывать / управлять контейнерами LXC с использованием очень простого синтаксиса команд.

Основные особенности LXD:

  • Безопасность по дизайну (непривилегированные контейнеры, ограничения ресурсов и многое другое)
  • Масштабируемость (от контейнеров на вашем ноутбуке до тысяч вычислительных узлов)
  • Интуитивно понятный (простой, понятный интерфейс API и четкая командная строка)
  • На основе изображения (больше нет шаблонов распространения, только хорошие, надежные изображения) Живая миграция

Теперь для OpenStack есть плагин NCLXD, позволяющий OpenStack использовать LXD для развертывания / управления контейнерами LXC в качестве виртуальных машин в OpenStack вместо использования KVM, vmware и т. Д.

Тем не менее, NCLXD также позволяет гибридное облако сочетания традиционных виртуальных машин HW и виртуальных машин LXC.

В плагин OpenStack nclxd включен список поддерживаемых функций:

stop/start/reboot/terminate container
Attach/detach network interface
Create container snapshot
Rescue/unrescue instance container
Pause/unpause/suspend/resume container
OVS/bridge networking
instance migration
firewall support

К тому моменту, когда Ubuntu 16.04 выпущен в апреле 2016 года, появятся дополнительные интересные функции, такие как поддержка блочных устройств, поддержка живой миграции .




Идя, чтобы сохранить это более острое, об этом уже спрашивали и отвечали выше .

Я бы сделал шаг назад и ответил немного по-другому, сам механизм докеров добавляет оркестровку в качестве одного из своих дополнительных компонентов, и это разрушительная часть. Как только вы запускаете приложение в виде комбинации контейнеров, работающих «где-то» в нескольких контейнерах, это становится очень захватывающим. Надежность, горизонтальное масштабирование, полная абстракция от базового оборудования, я мог бы продолжать и продолжать ...

Это не просто Docker, который дает вам это, ведь фактическим стандартом Container Orchestration является Kubernetes, который поставляется во множестве вкусов, Docker one, но также OpenShift, SuSe, Azure, AWS ...

Затем под K8S есть альтернативные контейнерные двигатели; интересными являются Docker и CRIO - недавно построенный, бесемонзный, предназначенный как контейнерный движок специально для Кубернетов, но незрелый. Его конкуренция между ними, которая, я думаю, станет настоящим долгосрочным выбором для контейнерного двигателя.




Related


Tags

docker   lxc