Αρχιτεκτονική Docker: Γιατί είναι σημαντικό;



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

Πολλοί από εμάς πιστεύουμε ότι το Docker αποτελεί αναπόσπαστο μέρος του . Έτσι, πίσω από αυτό το απίστευτο εργαλείο, πρέπει να υπάρχει μια καταπληκτική αρχιτεκτονική. Σε αυτό το blog, θα καλύψω όλα όσα πρέπει να γνωρίζετε για την αρχιτεκτονική του Docker. Αυτά είναι τα σημεία που θα συζητήσω εδώ:

  1. Παραδοσιακή εικονικοποίηση εναντίον Docker
  2. Ροή εργασίας του Docker
  3. Αρχιτεκτονική Docker

Παραδοσιακή εικονικοποίηση Vs Docker

Τι είναι ένα VM (εικονική μηχανή);

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





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

Τι είναι το Docker;

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



ταξινόμηση λίστας c ++

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

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

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



vm vs docker - αρχιτεκτονική docker - edureka

Ροή εργασίας του Docker

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

  1. Docker Daemon : Μια επίμονη διαδικασία παρασκηνίου που διαχειρίζεται εικόνες Docker, κοντέινερ, δίκτυα και τόμους αποθήκευσης. Ο δαίμονας Docker ακούει συνεχώς τα αιτήματα του Docker API και τα επεξεργάζεται.

  2. API REST Docker Engine : Ένα API χρησιμοποιείται από εφαρμογές για αλληλεπίδραση με τον δαίμονα Docker. Μπορεί να προσεγγιστεί από έναν πελάτη HTTP.

  3. Docker CLI : Ένας πελάτης διεπαφής γραμμής εντολών για αλληλεπίδραση με τον δαίμονα Docker. Απλοποιεί σημαντικά τον τρόπο διαχείρισης των παρουσιών κοντέινερ και είναι ένας από τους βασικούς λόγους για τους οποίους οι προγραμματιστές λατρεύουν τη χρήση του Docker.

Αρχικά, ο πελάτης Docker μιλά με τον δαίμονα Docker, ο οποίος εκτελεί τη βαριά ανύψωση του κτιρίου, τρέχει, καθώς και τη διανομή των δοχείων Docker. Βασικά, τόσο ο πελάτης Docker όσο και ο δαίμονας μπορούν να τρέχουν στο ίδιο σύστημα. Μπορούμε επίσης να συνδέσουμε έναν πελάτη Docker σε ένααπομακρυσμένος δαίμονας Docker. Επιπλέον, χρησιμοποιώντας ένα REST API, ο πελάτης Docker και ο δαίμονας, επικοινωνούν, μέσω υποδοχών UNIX ή διασύνδεσης δικτύου.

Αρχιτεκτονική Docker

Η αρχιτεκτονική του Docker χρησιμοποιεί ένα μοντέλο πελάτη-διακομιστή και αποτελείται από τα στοιχεία του Docker's Client, Docker Host, Network and Storage και το Docker Registry / Hub. Ας δούμε καθένα από αυτά με λεπτομέρεια.

Πελάτης του Docker

Οι χρήστες του Docker μπορούν να αλληλεπιδράσουν με το Docker μέσω ενός πελάτη. Όταν εκτελείται οποιαδήποτε εντολή docker, ο πελάτης τις στέλνει στον δαίμονα dockerd, ο οποίος τις εκτελεί. Το Docker API χρησιμοποιείται από τις εντολές Docker. Είναι δυνατό για τον πελάτη Docker να επικοινωνεί με περισσότερους από έναν δαίμονες.

Host Docker

Ο κεντρικός υπολογιστής Docker παρέχει ένα πλήρες περιβάλλον για την εκτέλεση και εκτέλεση εφαρμογών. Αποτελείται από τον δαίμονα Docker, Εικόνες, κοντέινερ, δίκτυα και αποθήκευση. Όπως αναφέρθηκε προηγουμένως, ο δαίμονας είναι υπεύθυνος για όλες τις ενέργειες που σχετίζονται με το κοντέινερ και λαμβάνει εντολές μέσω του CLI ήτο REST API. Μπορεί επίσης να επικοινωνήσει με άλλους δαίμονες για τη διαχείριση των υπηρεσιών του.

Αντικείμενα Docker

1. Εικόνες

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

Μπορείτε να μοιραστείτε τις εικόνες κοντέινερ σε ομάδες μέσα σε μια επιχείρηση με τη βοήθεια ενός ιδιωτικού μητρώου κοντέινερ ή να τις μοιραστείτε με τον κόσμο χρησιμοποιώντας ένα δημόσιο μητρώο όπως το Docker Hub. Οι εικόνες είναι το βασικό στοιχείο της εμπειρίας του Docker καθώς επιτρέπουν τη συνεργασία μεταξύ προγραμματιστών με έναν τρόπο που δεν ήταν δυνατό πριν

2. Δοχεία

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

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

3. Δίκτυα

Η δικτύωση Docker είναι ένα πέρασμα μέσω του οποίου επικοινωνούν όλα τα απομονωμένα κοντέινερ. Υπάρχουν κυρίως πέντε προγράμματα οδήγησης δικτύου στο docker:

    1. Γέφυρα : Είναι το προεπιλεγμένο πρόγραμμα οδήγησης δικτύου για ένα κοντέινερ. Χρησιμοποιείτε αυτό το δίκτυο όταν η εφαρμογή σας εκτελείται σε αυτόνομα κοντέινερ, δηλαδή πολλαπλά κοντέινερ που επικοινωνούν με τον ίδιο κεντρικό υπολογιστή.

    2. Πλήθος : Αυτό το πρόγραμμα οδήγησης καταργεί την απομόνωση δικτύου μεταξύ των κοντέινερ και του κεντρικού υπολογιστή. Μπορείτε να το χρησιμοποιήσετε όταν δεν χρειάζεστε απομόνωση δικτύου μεταξύ κεντρικού υπολογιστή και κοντέινερ.

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

    4. Κανένας : Αυτό το πρόγραμμα οδήγησης απενεργοποιεί όλη τη δικτύωση.

    5. macvlan : Αυτό το πρόγραμμα οδήγησης εκχωρεί διεύθυνση mac σε κοντέινερ για να τα κάνει να μοιάζουν με φυσικές συσκευές. Δρομολογεί την κίνηση μεταξύ εμπορευματοκιβωτίων μέσω των διευθύνσεων mac τους. Χρησιμοποιείτε αυτό το δίκτυο όταν θέλετε τα κοντέινερ να μοιάζουν με μια φυσική συσκευή, για παράδειγμα, κατά τη μετεγκατάσταση μιας ρύθμισης VM.

4. Αποθήκευση

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

    1. Όγκοι δεδομένων : Παρέχουν τη δυνατότητα δημιουργίας μόνιμου χώρου αποθήκευσης, με τη δυνατότητα μετονομασίας τόμων, λιστών τόμων και επίσης παρατίθενται το κοντέινερ που σχετίζεται με τον τόμο. Οι όγκοι δεδομένων τοποθετούνται στο σύστημα αρχείων κεντρικού υπολογιστή, έξω από τον μηχανισμό αντιγραφής σε εγγραφή κοντέινερ και είναι αρκετά αποδοτικοί.

    2. Εμπορευματοκιβώτιο όγκου : Πρόκειται για μια εναλλακτική προσέγγιση όπου ένα ειδικό κοντέινερ φιλοξενεί έναν τόμο και για να τοποθετήσει αυτόν τον τόμο σε άλλα δοχεία. Σε αυτήν την περίπτωση, το κοντέινερ τόμου είναι ανεξάρτητο από το κοντέινερ της εφαρμογής και επομένως μπορείτε να το μοιραστείτε σε περισσότερα από ένα κοντέινερ.

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

    4. Πρόσθετα αποθήκευσης : Τα πρόσθετα αποθήκευσης παρέχουν τη δυνατότητα σύνδεσης σε εξωτερικές πλατφόρμες αποθήκευσης. Αυτές οι προσθήκες αντιστοιχούν στον χώρο αποθήκευσης από τον κεντρικό υπολογιστή σε μια εξωτερική πηγή, όπως ένας πίνακας αποθήκευσης ή μια συσκευή. Μπορείτε να δείτε μια λίστα προσθηκών αποθήκευσης στη σελίδα του Docker's Plugin.

Μητρώο του Docker

Τα μητρώα Docker είναι υπηρεσίες που παρέχουν τοποθεσίες από τις οποίες μπορείτε να αποθηκεύσετε και να κατεβάσετε εικόνες. Με άλλα λόγια, ένα μητρώο Docker περιέχει αποθετήρια Docker που φιλοξενούν μία ή περισσότερες εικόνες Docker. Τα δημόσια μητρώα περιλαμβάνουν δύο στοιχεία, δηλαδή το Docker Hub και το Docker Cloud. Μπορείτε επίσης να χρησιμοποιήσετε ιδιωτικά μητρώα. Οι πιο συνηθισμένες εντολές κατά την εργασία με μητρώα περιλαμβάνουν: push docker, docker pull, docker run

Τώρα που έχετε κατανοήσει την Αρχιτεκτονική του Docker, δείτε αυτό από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα Εκπαίδευσης Πιστοποίησης Edureka DevOps βοηθά τους μαθητές να κατανοήσουν τι είναι DevOps και να αποκτήσουν εμπειρία σε διάφορες διαδικασίες και εργαλεία DevOps, όπως Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack και GIT για την αυτοματοποίηση πολλαπλών βημάτων στο SDLC.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του 'Docker Architecture' και θα επικοινωνήσουμε μαζί σας