2015-07-09 7 views
0

Глядя на this question and its answers, стало ясно, что несколько точек сделать контейнерные услуги довольно отличаются от традиционных виртуальных машин:Как Docker и другие контейнерные услуги отличаются от KVM?

  • Они могут сэкономить на производительность и пространстве путем обмена операционной системы хоста

  • Они также сэкономить пространство используя файловую систему AUFS, что позволяет им делиться жесткий диск с хозяином

Все это позволяет им загрузиться в долю времени занимает полную виртуальную машину.

Возможно, у меня есть некоторые неправильные представления о том, как работают KVM и о модели гипервизора, но не являются контейнерами, похожими на KVM? В чем они отличаются друг от друга, и каковы выгоды/потери производительности для любого из них?

+0

>>> Все это позволяет им загружаться за долю времени, затрачиваемое на полную виртуальную машину. Вы можете взглянуть на unikernel, см., Например, https://www.linux.com/news/enterprise/cloud-computing/819993-7-unikernel-projects-to-take-on-docker-in-2015 – user2915097

ответ

1

я могу иметь некоторые неверные представления о том, как работают KVMs и о модели гипервизора, но не контейнеры много как KVMs? В чем проблема? Какое значение у продукта есть ?

Виртуальная машина - это просто «виртуальное» оборудование, которое может загружать практически любую совместимую операционную систему. Например, вы можете запускать Windows в виртуальной машине на хосте Linux. VM предоставляет множество эмулируемых аппаратных средств, включая CPU, сетевые карты, интерфейсы хранения и т. Д.

Напротив, контейнер представляет собой не что иное, как набор процессов на вашем хосте. Процессы, запущенные внутри контейнера, ничем не отличаются от процессов, запущенных за пределами контейнера, - из хоста вы можете видеть их с помощью ps, управлять ими с помощью таких инструментов, как kill и т. Д. Из-за этого процессы, запущенные в контейнерах, используют ваше ядро ​​хоста - вы не можете, скажем, запустить двоичный файл Windows внутри контейнера на вашем хосте Linux.

Поскольку они не выполняют какую-либо аппаратную виртуализацию, контейнеры существенно легче, чем виртуальные машины. Пока вы можете работать с их ограничениями (т. Е. С тем, что они ограничены ядром операционной системы хоста), они будут лучше использовать оборудование, чем использовать одни и те же службы внутри виртуальной машины.

+0

I было похоже, что KVM имеют гораздо более ограниченную аппаратную виртуализацию, чем «полная» VM, и что в контейнерах используется подобная аналогичная песочница. Есть ли в этом правда? – Jules

+0

Возможно, у нас есть конфликт условий? Чтобы означать, что «KVM» - это виртуализация, реализованная ядром Linux ([эта]] (http://www.linux-kvm.org/page/Main_Page)), и именно это я и предполагал, что вы просили - - и это полная аппаратная виртуализация. Если вы действительно ссылаетесь на что-то другое, этот ответ может фактически не иметь отношения к делу. – larsks

+0

Вот и я ... Я думаю, что меня ввел в заблуждение человек, который изначально объяснил мне KVM. – Jules