Что же Докер добавить в команды lxc-инструменты (утилиты для lxc)?



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



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

497   5  

5 ответов:

с настройки часто задаваемые вопросы:

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

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

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

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

  • автоматическая сборка. Докер включает в себя инструмент для разработчиков, чтобы автоматически собрать контейнер с их исходный код, с полным контролем над зависимостями приложений, инструментами сборки, упаковкой и т. д. Они свободны в использовании, Мэйвен, шеф-повар, кукольный, соль, пакеты Debian, rpm-пакеты, архив с исходниками, или любая комбинация из вышеперечисленного, независимо от конфигурации машины.

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

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

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

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

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

давайте посмотрим на список технических возможностей Докера, и проверьте, какие из них предоставляются LXC, а какие нет.

характеристики:

1) изоляция файловой системы: каждый контейнер процесса работает в полностью отдельной корневой файловой системы.

при условии простой работы с lxc.

2) изоляцию ресурсов: системные ресурсы, такие как процессор и память могут быть выделены по-разному для каждого контейнера процесса, используя cgroups.

при условии простой работы с lxc.

3) сетевая изоляция: каждый контейнер процесса выполняется в своем собственном сетевом пространстве имен, с виртуальным интерфейсом и собственным IP-адресом.

при условии простой работы с lxc.

4) копировать на запись: корневые файловые системы создаются с помощью копирования на запись, что делает развертывание чрезвычайно быстрым и дешевым и диск-дешевый.

Это обеспечивается AUFS, файловой системой объединения, от которой зависит Docker. Вы можете настроить AUFS самостоятельно вручную с помощью LXC, но Docker использует его в качестве стандарта.

5) лесозаготовки: стандартные потоки (stdout/stderr / stdin) каждого контейнера процесса собираются и регистрируются для извлечения в режиме реального времени или пакетной обработки.

настройки обеспечивает это.

6) управление изменениями: изменения в файловой системе контейнера могут быть зафиксированы в новом образе и повторно использованы для создания дополнительных контейнеров. Никаких шаблонов или ручной настройки не требуется.

"Templating or manual configuration" - это ссылка на LXC, где вам нужно будет узнать об обеих этих вещах. Docker позволяет обрабатывать контейнеры так, как вы привыкли обрабатывать виртуальные машины, не изучая конфигурацию LXC.

7) интерактивные оболочка: docker может выделить псевдо-tty и прикрепить к стандартному входу любого контейнера, например, для запуска одноразовой интерактивной оболочки.

LXC уже предоставляет это.


Я только начал изучать LXC и Docker, поэтому я бы приветствовал любые исправления или лучшие ответы.

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

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

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

основные характеристики LXD:

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

здесь плагин NCLXD теперь для OpenStack позволяет 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 года будет дополнительные интересные функции, такие как поддержка блочных устройств, поддержка live-миграции.

докеры используют изображения, которые строятся в слоях. Это добавляет много с точки зрения переносимости, совместного использования, управления версиями и других функций. Эти изображения очень легко переносить или передавать, и поскольку они находятся в слоях, изменения в последующих версиях добавляются в виде слоев поверх предыдущих слоев. Таким образом, при переносе много раз вам не нужно переносить базовые слои. У докеров есть контейнеры, которые запускают эти изображения с помощью среды выполнения, они добавляют изменения в качестве новых слоев, обеспечивая простоту контроль версий.

помимо этого Docker Hub-это хороший реестр с тысячами общедоступных изображений, где вы можете найти изображения с установленной ОС и другим программным обеспечением. Таким образом, вы можете получить довольно хороший старт для вашего приложения.

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

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

Это не просто Докер, который дает вам это, на самом деле де-факто стандарт оркестровки контейнеров-это Kubernetes, который поставляется во многих вкусах, Докер, но также OpenShift, SuSe, Azure, AWS...

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

Comments

    Ничего не найдено.