Sobes.tech
Junior

Τι χρησιμοποιείται μέσα σε ένα Docker κοντέινερ;

sobes.tech AI

Απάντηση από AI

Το κοντέινερ Docker χρησιμοποιεί μια σειρά από τεχνολογίες για την απομόνωση διαδικασιών και πόρων:

  • Namespaces του πυρήνα Linux: Παρέχουν απομόνωση για διάφορους πόρους συστήματος, όπως:

    • PID (Αναγνωριστικό Διαδικασίας): Απομονώνουν τις διαδικασίες.
    • Net (Δίκτυο): Απομονώνουν τη στοίβα δικτύου.
    • Mount (mnt): Απομονώνουν τα σημεία προσάρτησης του συστήματος αρχείων.
    • UTS (Unix Timesharing System): Απομονώνουν το όνομα υπολογιστή και το όνομα τομέα.
    • IPC (Επικοινωνία μεταξύ διαδικασιών): Απομονώνουν τους μηχανισμούς επικοινωνίας μεταξύ διαδικασιών.
    • User (Ταυτότητα χρήστη και ομάδας): Απομονώνουν τις ταυτότητες χρηστών και ομάδων.
  • Ομάδες ελέγχου (cgroups): Διαχειρίζονται και περιορίζουν τη χρήση υλικών πόρων για διαδικασίες μέσα στο κοντέινερ, συμπεριλαμβανομένων:

    • CPU: Περιορισμός της χρήσης χρόνου επεξεργαστή.
    • Memory: Περιορισμός της χρήσης μνήμης RAM.
    • Block I/O: Περιορισμός της εύρους ζώνης εισόδου/εξόδου δίσκου.
    • Net I/O: Περιορισμός της εύρους ζώνης εισόδου/εξόδου δικτύου.
  • Συστήματα αρχείων union: Παρέχουν ένα συνδυασμένο σύστημα αρχείων που αποτελείται από πολλαπλά στρώματα. Το Docker χρησιμοποιεί συστήματα αρχείων όπως OverlayFS, AUFS, Btrfs, ZFS. Αυτό επιτρέπει την αποτελεσματική διαχείριση της αποθήκευσης εικόνων και τη δημιουργία στρωμάτων μόνο για αλλαγές.

  • Διαδικασία Docker Daemon: Διαχειρίζεται τον κύκλο ζωής των κοντέινερ (δημιουργία, εκκίνηση, διακοπή, διαγραφή).

  • Χρόνος εκτέλεσης κοντέινερ: Χαμηλού επιπέδου εκτέλεση του κοντέινερ. Το Docker έχει χρησιμοποιήσει και υποστηρίζει διάφορους χρόνους εκτέλεσης, όπως runc (προδιαγραφή OCI), containerd.

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

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

Ουσιαστικά, ένα κοντέινερ είναι μια απομονωμένη διαδικασία (ή σύνολο διαδικασιών) που λειτουργεί σε ένα περιορισμένο περιβάλλον, που παρέχεται από τον πυρήνα Linux και διαχειρίζεται από το Docker.