Docker Architecture και τα στοιχεία της για αρχάριους

Ας εξοικειωθούμε με την αρχιτεκτονική Docker και τα βασικά στοιχεία του.

Υποθέτω ότι έχετε μια βασική κατανόηση του Docker. Εάν όχι, μπορείτε να ανατρέξετε σε αυτό το προηγούμενο άρθρο.

Πιστεύω ότι κατανοείτε τη σημασία του Docker στο DevOps. Τώρα πίσω από αυτό το φανταστικό εργαλείο, πρέπει να υπάρχει μια καταπληκτική, καλά μελετημένη αρχιτεκτονική. Δεν είναι;

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

Παραδοσιακή έναντι νέας γενιάς εικονικοποίηση

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

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

Docker Architecture

Παρακάτω είναι το απλό διάγραμμα μιας αρχιτεκτονικής Docker.

Επιτρέψτε μου να σας εξηγήσω τα στοιχεία μιας αρχιτεκτονικής docker.

Μηχανή Docker

Είναι το βασικό μέρος ολόκληρου του συστήματος Docker. Το Docker Engine είναι μια εφαρμογή που ακολουθεί την αρχιτεκτονική πελάτη-διακομιστή. Είναι εγκατεστημένο στον κεντρικό υπολογιστή. Υπάρχουν τρία στοιχεία στο Docker Engine:

  • Διακομιστής: Είναι ο δαίμονας docker που ονομάζεται dockerd. Μπορεί να δημιουργήσει και να διαχειριστεί εικόνες docker. Εμπορευματοκιβώτια, δίκτυα κ.λπ.
  • Rest API: Χρησιμοποιείται για να δώσει οδηγίες στον docker daemon τι να κάνει.
  • Διεπαφή γραμμής εντολών (CLI): Είναι ένας πελάτης που χρησιμοποιείται για την εισαγωγή εντολών docker.
  Πώς να επιλέξετε το καλύτερο

Docker Client

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

Μητρώα Docker

Είναι η τοποθεσία όπου αποθηκεύονται οι εικόνες Docker. Μπορεί να είναι ένα δημόσιο μητρώο docker ή ένα ιδιωτικό μητρώο docker. Το Docker Hub είναι το προεπιλεγμένο μέρος των εικόνων docker, το δημόσιο μητρώο των καταστημάτων του. Μπορείτε επίσης να δημιουργήσετε και να εκτελέσετε το δικό σας ιδιωτικό μητρώο.

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

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

Όταν εργάζεστε με το Docker, χρησιμοποιείτε εικόνες, κοντέινερ, τόμους, δίκτυα. όλα αυτά είναι αντικείμενα Docker.

εικόνες

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

  13 Καλύτερο λογισμικό OKR για το 2022

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

Εμπορευματοκιβώτια

Αφού εκτελέσετε μια εικόνα docker, δημιουργεί ένα κοντέινερ docker. Όλες οι εφαρμογές και το περιβάλλον τους τρέχουν μέσα σε αυτό το κοντέινερ. Μπορείτε να χρησιμοποιήσετε το Docker API ή CLI για να ξεκινήσετε, να σταματήσετε, να διαγράψετε ένα κοντέινερ docker.

Παρακάτω είναι ένα δείγμα εντολής για την εκτέλεση ενός κοντέινερ docker ubuntu:

docker run -i -t ubuntu /bin/bash

Τόμοι

Τα μόνιμα δεδομένα που δημιουργούνται από το docker και χρησιμοποιούνται από τα κοντέινερ του Docker αποθηκεύονται σε τόμους. Η διαχείριση τους γίνεται εξ ολοκλήρου από το docker μέσω του docker CLI ή του Docker API. Οι τόμοι λειτουργούν τόσο σε κοντέινερ Windows όσο και σε Linux. Αντί να διατηρούνται δεδομένα στο εγγράψιμο επίπεδο ενός κοντέινερ, είναι πάντα μια καλή επιλογή να χρησιμοποιείτε τόμους για αυτό. Το περιεχόμενο του τόμου υπάρχει εκτός του κύκλου ζωής ενός δοχείου, επομένως η χρήση του όγκου δεν αυξάνει το μέγεθος ενός δοχείου.

Μπορείτε να χρησιμοποιήσετε τη σημαία -v ή –mount για να ξεκινήσετε ένα κοντέινερ με τόμο. Σε αυτήν την εντολή δείγματος, χρησιμοποιείτε τόμο geekvolume με κοντέινερ grtechpc.org.

docker run -d --name grtechpc.org  -v geekvolume:/app nginx:latest

Δίκτυα

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

  Πώς να δημιουργήσετε ένα πρότυπο Google Slides
  • Bridge: Είναι το προεπιλεγμένο πρόγραμμα οδήγησης δικτύου για ένα κοντέινερ. Χρησιμοποιείτε αυτό το δίκτυο όταν η εφαρμογή σας εκτελείται σε αυτόνομα κοντέινερ, δηλαδή πολλά κοντέινερ που επικοινωνούν με τον ίδιο κεντρικό υπολογιστή docker.
  • Κεντρικός υπολογιστής: Αυτό το πρόγραμμα οδήγησης καταργεί την απομόνωση δικτύου μεταξύ των κοντέινερ docker και του host docker. Χρησιμοποιείται όταν δεν χρειάζεστε απομόνωση δικτύου μεταξύ κεντρικού υπολογιστή και κοντέινερ.
  • Επικάλυψη: Αυτό το δίκτυο επιτρέπει στις υπηρεσίες σμήνους να επικοινωνούν μεταξύ τους. Χρησιμοποιείται όταν τα κοντέινερ εκτελούνται σε διαφορετικούς κεντρικούς υπολογιστές Docker ή όταν οι υπηρεσίες σμήνος σχηματίζονται από πολλαπλές εφαρμογές.
  • Κανένα: Αυτό το πρόγραμμα οδήγησης απενεργοποιεί όλη τη δικτύωση.
  • macvlan: Αυτό το πρόγραμμα οδήγησης εκχωρεί διεύθυνση mac σε κοντέινερ για να μοιάζουν με φυσικές συσκευές. Η κίνηση δρομολογείται μεταξύ κοντέινερ μέσω των διευθύνσεων mac τους. Αυτό το δίκτυο χρησιμοποιείται όταν θέλετε τα κοντέινερ να μοιάζουν με φυσική συσκευή, για παράδειγμα, κατά τη μετεγκατάσταση μιας εγκατάστασης VM.
  • συμπέρασμα

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

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