Docker vs Virtual Machine (VM) – Κατανόηση των διαφορών

Μία από τις συχνές ερωτήσεις που τίθενται για το Docker είναι πώς διαφέρει από το VM (εικονική μηχανή).

Όσον αφορά την υποδομή cloud, η εικονική μηχανή ήταν το βασικό πρότυπο για πολλά από τα πλεονεκτήματά της. Ωστόσο, τι θα γινόταν αν είχατε μια εναλλακτική σε μια εικονική μηχανή που ήταν πιο ελαφριά, οικονομική και επεκτάσιμη. Αυτό ακριβώς είναι το Docker.

Το Docker είναι μια τεχνολογία που βασίζεται σε κοντέινερ που σας επιτρέπει να αναπτύξετε κατανεμημένες εφαρμογές. Σε αυτήν την ανάρτηση ιστολογίου, θα εξηγήσω τις διαφορές μεταξύ εικονικών μηχανών και κοντέινερ Docker.

Τι είναι μια εικονική μηχανή;

Μια εικονική μηχανή είναι ένα σύστημα που λειτουργεί ακριβώς όπως ένας υπολογιστής.

Με απλά λόγια, καθιστά δυνατή την εκτέλεση αυτού που φαίνεται να υπάρχει σε πολλούς ξεχωριστούς υπολογιστές σε υλικό, δηλαδή έναν υπολογιστή. Κάθε εικονική μηχανή απαιτεί το υποκείμενο λειτουργικό της σύστημα και στη συνέχεια γίνεται εικονικοποίηση του υλικού.

Τι είναι το Docker;

Το Docker είναι ένα εργαλείο που χρησιμοποιεί κοντέινερ για να κάνει τη δημιουργία, την ανάπτυξη και την εκτέλεση της εφαρμογής πολύ πιο εύκολη. Δεσμεύει την εφαρμογή και τις εξαρτήσεις της μέσα σε ένα δοχείο.

  Ποια είναι η διαφορά μεταξύ του HBO Max, του HBO NOW και του HBO Go;

Εκμάθηση Docker είναι εύκολο!

Docker εναντίον VM

Τώρα θα σας πω τις σημαντικές διαφορές μεταξύ των κοντέινερ docker και των εικονικών μηχανών. Λοιπόν, οι σημαντικές διαφορές είναι η υποστήριξη λειτουργικού συστήματος, η ασφάλεια, η φορητότητα και η απόδοση.

Ας συζητήσουμε λοιπόν κάθε έναν από αυτούς τους όρους έναν προς έναν.

Υποστήριξη Λειτουργικού Συστήματος

Η υποστήριξη του λειτουργικού συστήματος του Virtual Machine και του Docker container είναι πολύ διαφορετική. Από την παραπάνω εικόνα, μπορείτε να δείτε ότι κάθε εικονική μηχανή έχει το λειτουργικό της σύστημα επισκέπτη πάνω από το λειτουργικό σύστημα κεντρικού υπολογιστή, γεγονός που κάνει τις εικονικές μηχανές βαριές. Ενώ από την άλλη πλευρά, τα κοντέινερ Docker μοιράζονται το λειτουργικό σύστημα του κεντρικού υπολογιστή και γι’ αυτό είναι ελαφριά.

Η κοινή χρήση του λειτουργικού συστήματος του κεντρικού υπολογιστή μεταξύ των κοντέινερ τα καθιστά πολύ ελαφριά και τα βοηθά να εκκινήσουν μέσα σε λίγα δευτερόλεπτα. Ως εκ τούτου, τα γενικά έξοδα για τη διαχείριση του συστήματος κοντέινερ είναι πολύ χαμηλό σε σύγκριση με αυτά των εικονικών μηχανών.

Τα κοντέινερ docker είναι κατάλληλα για καταστάσεις όπου θέλετε να εκτελέσετε πολλές εφαρμογές σε έναν πυρήνα λειτουργικού συστήματος. Αλλά εάν έχετε εφαρμογές ή διακομιστές που πρέπει να εκτελούνται σε διαφορετικές γεύσεις λειτουργικού συστήματος, τότε απαιτούνται εικονικές μηχανές.

  Διορθώστε το πρόβλημα που δεν ενεργοποιεί το Amazon Echo

Ασφάλεια

Η εικονική μηχανή δεν διαθέτει κοινόχρηστο λειτουργικό σύστημα και υπάρχει ισχυρή απομόνωση στον πυρήνα του κεντρικού υπολογιστή. Ως εκ τούτου, είναι πιο ασφαλή σε σύγκριση με τα κοντέινερ. Ένα κοντέινερ έχει πολλούς κινδύνους ασφαλείας και ευπάθειες καθώς τα κοντέινερ έχουν κοινό πυρήνα κεντρικού υπολογιστή.

Επίσης, δεδομένου ότι οι πόροι docker είναι κοινόχρηστοι και όχι με χώρο ονομάτων, ένας εισβολέας μπορεί να εκμεταλλευτεί όλα τα κοντέινερ σε ένα σύμπλεγμα εάν έχει πρόσβαση ακόμη και σε ένα κοντέινερ. Σε μια εικονική μηχανή, δεν έχετε άμεση πρόσβαση στους πόρους και ο hypervisor είναι εκεί για να περιορίσει τη χρήση των πόρων σε ένα VM.

Φορητότητα

Τα δοχεία Docker είναι εύκολα φορητά επειδή δεν διαθέτουν ξεχωριστά λειτουργικά συστήματα. Ένα κοντέινερ μπορεί να μεταφερθεί σε διαφορετικό λειτουργικό σύστημα και μπορεί να ξεκινήσει αμέσως. Από την άλλη πλευρά, οι εικονικές μηχανές έχουν ξεχωριστό λειτουργικό σύστημα, επομένως η μεταφορά μιας εικονικής μηχανής είναι δύσκολη σε σύγκριση με τα κοντέινερ και χρειάζεται επίσης πολύς χρόνος για τη μεταφορά μιας εικονικής μηχανής λόγω του μεγέθους της.

Για σκοπούς ανάπτυξης όπου οι εφαρμογές πρέπει να αναπτυχθούν και να δοκιμαστούν σε διαφορετικές πλατφόρμες, τα κοντέινερ Docker είναι η ιδανική επιλογή.

Εκτέλεση

Η σύγκριση εικονικών μηχανών και εμπορευματοκιβωτίων Docker δεν θα ήταν δίκαιη επειδή και τα δύο χρησιμοποιούνται για διαφορετικούς σκοπούς. Όμως, η ελαφριά αρχιτεκτονική του docker που διαθέτει λιγότερο πόρους, το καθιστά καλύτερη επιλογή από μια εικονική μηχανή. Ως αποτέλεσμα, εκ των οποίων τα κοντέινερ μπορούν να ξεκινήσουν πολύ γρήγορα σε σύγκριση με αυτό των εικονικών μηχανών και η χρήση πόρων ποικίλλει ανάλογα με το φορτίο ή την κίνηση σε αυτά.

  Πώς να επιλέξετε ένα προσαρμοσμένο χρώμα για το μενού "Έναρξη".

Σε αντίθεση με την περίπτωση των εικονικών μηχανών, δεν υπάρχει ανάγκη μόνιμης κατανομής πόρων σε κοντέινερ. Η κλιμάκωση και η αντιγραφή των κοντέινερ είναι επίσης μια εύκολη υπόθεση σε σύγκριση με αυτή των εικονικών μηχανών, καθώς δεν χρειάζεται να εγκαταστήσετε λειτουργικό σύστημα σε αυτά.

συμπέρασμα

Ακολουθεί ένας πίνακας που καταλήγει στις διαφορές εικονικής μηχανής και κοντέινερ Docker.

Εικονική μηχανή
Docker Container
Απομόνωση διαδικασίας σε επίπεδο υλικού
Απομόνωση διαδικασίας σε επίπεδο λειτουργικού συστήματος
Κάθε VM έχει ξεχωριστό λειτουργικό σύστημα
Κάθε κοντέινερ μπορεί να μοιράζεται λειτουργικό σύστημα
Μπότες σε λίγα λεπτά
Μπότες σε δευτερόλεπτα
Τα VM είναι λίγα GB
Τα δοχεία είναι ελαφριά (KBs/MBs)
Τα έτοιμα VM είναι δύσκολο να βρεθούν
Τα προκατασκευασμένα δοχεία αποβάθρας είναι εύκολα διαθέσιμα
Τα VM μπορούν εύκολα να μετακινηθούν σε νέο κεντρικό υπολογιστή
Τα κοντέινερ καταστρέφονται και ξαναδημιουργούνται αντί να μετακινούνται
Η δημιουργία εικονικής πραγματικότητας διαρκεί σχετικά περισσότερο χρόνο
Τα δοχεία μπορούν να δημιουργηθούν σε δευτερόλεπτα
Περισσότερη χρήση πόρων
Λιγότερη χρήση πόρων

Σας άρεσε να διαβάζετε το άρθρο; Τι θα λέγατε να μοιράζεστε με τον κόσμο;