Отношение докеров к виртуальным машинам и LXC
Мое понимание Linux Containers (LXC) заключается в том, что он предоставляет собственный гипервизор для Linux-систем, аналогичный Windows Hyper-V, представленный в Windows 8. Под "родным гипервизором" я имею в виду, что для системы Linux хост-гостевые виртуальные машины внутри него без необходимости устанавливать какое-либо специализированное программное обеспечение для виртуализации.
Мое понимание Docker заключается в том, что он каким-то образом строится поверх LXC и позволяет разработчикам приложений определять:
- Точный стек приложения VM/ node, включая ОС, точную конфигурацию и настройку ОС и любые инструменты или приложения, установленные/настроенные/развернутые для этой ОС; и
- Точные требования к ресурсам для запуска этой VM/ node, включая требования к ЦП, требования к памяти/диску/сети, требования к балансировке нагрузки и репликации и т.д. Затем Docker определяет, какие узлы запускают контейнер, используя эти объявленные в качестве базовой линии.
Итак, если мое понимание LXC или Docker вообще вводит в заблуждение, , пожалуйста, начните с исправления!
Предполагая, что я более или менее корректен в своем понимании, я спрашиваю:
- Какова связь между Docker и, скажем, vmWare или Xen VM? Докер "сидит на вершине" уровня виртуализации? Другими словами, существуют ли "привязки Docker" для разных платформ виртуализации (vmWare, Xen, kvm и т.д.), И я могу взять контейнер Docker для
myapp
и развернуть его на любой платформе Docker-ified?
- Какая связь между LXC и Docker? Докер просто просто расширяет LXC, или это аналогичная (но совершенно отдельная) концепция вообще? Если это расширение LXC, то каким образом?
Ответы
Ответ 1
между LXC и Docker, → docker начал использовать LXC, но, поскольку docker 0.9, docker использует libcontainer и больше не использует lxc-start для запуска контейнеров. По сравнению с LXC, docker предлагает REST Api, позволяет перемещать изображения из и в реестр, позволяет строить с помощью Dockerfiles...