Докер срещу виртуална машина – разбиране на разликите

Един от често задаваните въпроси за Docker е как се различава от VM (виртуална машина).


Що се отнася до облачната инфраструктура, виртуалната машина е била стандартът за много от нейните предимства. Какво обаче, ако имате алтернатива на виртуална машина, която е по-лека, икономична и мащабируема. Точно това е Докер.

Docker е технология, базирана на контейнери, която ви позволява да разработвате разпределени приложения. В тази публикация в блога ще обясня разликите между виртуалните машини и Docker контейнерите.

Какво е виртуална машина?

Виртуална машина е система, която действа точно като компютър.

Казано по-просто, дава възможност да стартирате това, което изглежда на много отделни компютри на хардуер, тоест един компютър. Всяка виртуална машина изисква своята основна операционна система и след това хардуерът се виртуализира.

Какво е Докер?

Docker е инструмент, който използва контейнери, за да улесни създаването, внедряването и стартирането на приложение. Той обвързва приложението и неговите зависимости вътре в контейнера.

Учене Докер лесно е!

Докер срещу ВМ

Сега ще ви кажа значителните разлики между докер контейнерите и виртуалните машини. Е, значителните разлики са тяхната поддръжка на операционната система, сигурността, преносимостта и производителността.

Затова нека обсъдим всеки един от тези условия един по един.

Поддръжка на операционната система

Традиционен срещу Нов ген

Поддръжката на операционната система на виртуална машина и контейнер Docker е много различна. От изображението по-горе можете да видите, че всяка виртуална машина има своя гост операционна система над хост операционната система, което прави виртуалните машини тежки. Докато от друга страна, контейнерите на Docker споделят хост операционната система и затова те са леки.

Споделянето на хост операционната система между контейнерите ги прави много леки и им помага да се стартират само за няколко секунди. Следователно, режийните разходи за управление на контейнерната система са много ниски в сравнение с тези на виртуалните машини.

Докер контейнерите са подходящи за ситуации, в които искате да стартирате множество приложения през едно ядро ​​на операционната система. Но ако имате приложения или сървъри, които трябва да работят на различни вкусове на операционната система, тогава са необходими виртуални машини.

Сигурност

Виртуалната машина не споделя операционна система и има силна изолация в хост ядрото. Следователно, те са по-сигурни в сравнение с контейнерите. Контейнерът има много рискове за сигурността и уязвимости, тъй като контейнерите имат споделено хост ядро.

Освен това, тъй като ресурсите на докера са споделени и не са разделени с имена, атакуващият може да използва всички контейнери в клъстер, ако получи достъп до дори един контейнер. Във виртуална машина нямате директен достъп до ресурсите и хипервизор е там, за да ограничи използването на ресурси във виртуална машина.

преносимост

Докер контейнерите са лесно преносими, тъй като нямат отделни операционни системи. Контейнер може да бъде пренесен в различна ОС и той може да започне веднага. От друга страна, виртуалните машини имат отделна ОС, така че пренасянето на виртуална машина е трудно в сравнение с контейнерите и също така отнема много време, за да пренесете виртуална машина поради размера си.

За целите на развитието, където приложенията трябва да бъдат разработени и тествани в различни платформи, Docker контейнерите са идеалният избор.

производителност

Сравняването на виртуални машини и Docker Containers не би било справедливо, защото и двете се използват за различни цели. Но леката архитектура на docker, неговата не толкова интензивна ресурс функция го прави по-добър избор от виртуална машина. В резултат на това контейнерите могат да се стартират много бързо в сравнение с тези на виртуалните машини, а използването на ресурсите варира в зависимост от натоварването или трафика в него.

За разлика от случая с виртуални машини, не е необходимо постоянно да разпределяте ресурси за контейнери. Мащабирането и дублирането на контейнерите също е лесна задача в сравнение с тази на виртуалните машини, тъй като няма нужда да инсталирате операционна система в тях.

заключение

Ето таблица, която заключава разликите във виртуалната машина и контейнерите на Docker.

Виртуална машинаДокер контейнер
Изолация на хардуерно нивоИзолация на процесно ниво
Всеки VM има отделна ОСВсеки контейнер може да споделя ОС
Обувки за минутиОбувки за секунди
ВМ са с няколко GBКонтейнерите са леки (KBs / MB)
Готовите виртуални машини са трудни за намиранеПредварително изградените докер контейнери са лесно достъпни
Виртуалните машини могат лесно да се преместят в нов хостКонтейнерите се унищожават и създават отново, а не се движат
Създаването на VM отнема сравнително по-дълго времеКонтейнерите могат да бъдат създадени за секунди
Повече използване на ресурсиПо-малко използване на ресурси

ЕТИКЕТИ:

  • докер

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map