Τα βασικά του Master Docker με αυτές τις σημαντικές έννοιες εξηγούνται με απλά λόγια.
Το Mastering Docker είναι μια περιζήτητη δεξιότητα για τους μηχανικούς λογισμικού υποστήριξης. Το Docker θα σας βοηθήσει να δημιουργήσετε, να συσκευάσετε και να διανείμετε εφαρμογές.
Οι εφαρμογές Docker μπορούν να εκτελούνται σε διάφορα περιβάλλοντα. Αυτό μειώνει το χρόνο διακοπής της εφαρμογής, δίνοντας στις επιχειρήσεις ανταγωνιστικό πλεονέκτημα. Αλλά το Docker μπορεί να σας εκφοβίσει όταν αρχίσετε να το μαθαίνετε. Εδώ είναι ζωτικής σημασίας θέματα για να μάθετε να κυριαρχείτε στο Docker.
Τι είναι το Docker;
Το Docker είναι ένα λογισμικό που χρησιμοποιείται για τη συσκευασία εφαρμογών σε εκτελέσιμες μονάδες που ονομάζονται κοντέινερ. Το Docker παρέχει υποστήριξη για τη γρήγορη δημιουργία, δοκιμή και ανάπτυξη εφαρμογών.
Όταν χρησιμοποιείτε το Docker, αλληλεπιδράτε με το Docker Engine. Μπορείτε να εγκαταστήσετε το Docker Engine σε οποιοδήποτε λειτουργικό σύστημα, συμπεριλαμβανομένων Windows 10 και 11, macOS
, ή Συστήματα Ubuntu/Linux. Υπάρχουν πολλά εργαλεία και έννοιες που πρέπει να μάθετε να χρησιμοποιείτε αποτελεσματικά το Docker. Εδώ είναι τα πιο απαραίτητα για να ξεκινήσετε.1. Εικόνα Docker
Μια εικόνα Docker είναι ένα ελαφρύ σχεδιάγραμμα που χρησιμοποιείται για τη δημιουργία κοντέινερ. Είναι ένα πρότυπο οδηγιών που καθορίζουν το λειτουργικό σύστημα, τον κωδικό εφαρμογής και τις εξαρτήσεις. Ορίζετε οδηγίες σχετικά με τον τρόπο δημιουργίας της εικόνας σε ένα Dockerfile.
Στο αρχείο, αναφέρετε όλα όσα χρειάζεται η εφαρμογή σας. Στη συνέχεια, το Docker δημιουργεί αυτόματα την εικόνα με βάση τις οδηγίες που παρέχονται. Μπορείτε να βρείτε διάφορες εικόνες στο ηλεκτρονικό μητρώο του Docker, Docker Hub. Ο Docker συνιστά τη χρήση των επίσημων εικόνων για λόγους ασφαλείας.
Μπορείτε επίσης να δημιουργήσετε εικόνες με βάση προσαρμοσμένες διαμορφώσεις. Οι εικόνες διατίθενται σε διάφορα μεγέθη, λειτουργικά συστήματα και γλώσσες. Μπορείτε να επιλέξετε αυτό που ταιριάζει καλύτερα στην εφαρμογή σας. Για παράδειγμα, μπορείτε να μάθετε πώς να δημιουργήσετε μια εικόνα Docker για ένα web API .NET.
2. Docker Container
Τα κοντέινερ είναι μονάδες που χρησιμοποιούνται για τη συσκευασία μιας εφαρμογής σε μια εκτελέσιμη μονάδα. Τα κοντέινερ περιλαμβάνουν όλα όσα χρειάζονται για την εκτέλεση μιας εφαρμογής, συμπεριλαμβανομένων βιβλιοθηκών, κώδικα, εξαρτήσεων και χρόνου εκτέλεσης.
Τα κοντέινερ απομονώνουν τις εφαρμογές σε μονάδες επιτρέποντάς τους να εκτελούνται με συνέπεια σε διάφορα περιβάλλοντα. Τα κοντέινερ σάς επιτρέπουν να διαχειρίζεστε εφαρμογές σε περιβάλλοντα ανάπτυξης και παραγωγής χωρίς να αντιμετωπίζετε σφάλματα. Υπάρχουν πολλές θήκες χρήσης για δοχεία που μπορείτε να εξερευνήσετε.
Τα κοντέινερ Docker έχουν λεπτομέρειες όπως το αναγνωριστικό κοντέινερ, η εικόνα και το λειτουργικό σύστημα βάσης. Μπορείτε επίσης να δείτε το χρόνο εκτέλεσης, την κατάσταση και το όνομα του κοντέινερ. Για να παραθέσετε όλα τα κοντέινερ στο σύστημά σας, χρησιμοποιήστε την ακόλουθη εντολή:
docker container ls
Θα δείτε λεπτομέρειες για όλα τα κοντέινερ που τρέχουν:
Μπορείτε επίσης να χρησιμοποιήσετε docker ps για να δείτε όλα τα κοντέινερ που τρέχουν. Και επιθεώρηση κοντέινερ docker [αναγνωριστικό κοντέινερ] για να δείτε τα περιεχόμενα ενός κοντέινερ.
4. Dockerfile
Ένα Dockerfile είναι ένα έγγραφο που καθορίζει οδηγίες σχετικά με τον τρόπο δημιουργίας της εικόνας Docker. Το αρχείο καθορίζει τη βασική εικόνα, τον κωδικό εφαρμογής και τα αρχεία που απαιτούνται για τη δημιουργία της εικόνας.
Το αρχείο περιλαμβάνει επίσης τις μεταβλητές περιβάλλοντος και τις εντολές για τη δημιουργία εικόνας. Μπορείτε να δημιουργήσετε ένα Dockerfile όπως οποιοδήποτε άλλο αρχείο. Πρέπει να καθορίσετε τις οδηγίες στο αρχείο χρησιμοποιώντας μια σύνταξη που κατανοεί το Docker. Ακολουθεί ένα παράδειγμα δείγματος Dockerfile:
5. Docker Compose
Το Docker Compose είναι ένα εργαλείο για τον καθορισμό και την εκτέλεση εφαρμογών Docker πολλαπλών κοντέινερ. Ρυθμίζετε όλες τις υπηρεσίες σε ένα αρχείο YAML. Ένα αρχείο YAML είναι ένα έγγραφο όπου προσδιορίζετε τις απαραίτητες υπηρεσίες για την αίτησή σας. Στη συνέχεια, μπορείτε να δημιουργήσετε και να εκτελέσετε όλες τις υπηρεσίες χρησιμοποιώντας μία μόνο εντολή.
Το Docker Compose μπορεί να εκτελεί εφαρμογές σε διάφορα περιβάλλοντα. Αυτά μπορεί να είναι περιβάλλοντα παραγωγής, σκηνοθεσίας, ανάπτυξης ή δοκιμών. Το Docker Compose απλοποιεί την πολύπλοκη διαδικασία ενορχήστρωσης πολλαπλών κοντέινερ.
Μπορείτε να χρησιμοποιήσετε το Docker Compose για να διαχειριστείτε μια εφαρμογή σε όλη τη διάρκεια του κύκλου ζωής της. Αυτό μπορεί να περιλαμβάνει υπηρεσίες εκκίνησης, διακοπής και ανακατασκευής. Μπορείτε επίσης να προβάλετε την κατάσταση των υπηρεσιών που εκτελούνται, την έξοδο καταγραφής ροής και την εκτέλεση εντολών σε μια υπηρεσία.
Με το Docker Compose, μπορείτε να διαμορφώσετε δίκτυα, να διαχειριστείτε τόμους και να καθορίσετε εξαρτήσεις. Μπορείτε επίσης να κλιμακώσετε τις εφαρμογές οριζόντια κατά την παραγωγή, καθορίζοντας υπηρεσίες αντιγραφής.
Το Compose απλοποιεί την ανάπτυξη πολύπλοκων εφαρμογών σε διάφορα περιβάλλοντα. Μπορείτε επίσης να το χρησιμοποιήσετε για να αναπαράγετε το ίδιο περιβάλλον σε διαφορετικά συστήματα. Μάθετε πώς να χρησιμοποιείτε το Docker Compose μπορεί να αυξήσει την αποτελεσματικότητα της εφαρμογής σας.
Ακολουθεί ένα παράδειγμα αρχείου Docker Compose YAML:
6. Docker Hub
Docker Hub είναι ένα ηλεκτρονικό μητρώο κοντέινερ για το Docker. Όντας το μεγαλύτερο μητρώο κοντέινερ, είναι ένα εργαλείο συνεργασίας για προγραμματιστές και συνεισφέροντες ανοιχτού κώδικα. Είναι επίσης μια εξαιρετική αγορά για πωλητές λογισμικού.
Το Docker Hub είναι ένας αξιόπιστος πόρος για την εύρεση αξιόπιστου λογισμικού εικονικοποίησης. Μπορείτε να δημιουργήσετε ένα αποθετήριο και να μοιραστείτε περισσότερες από 100.000 εικόνες.
Μπορείς φιλοξενούν τις εφαρμογές σας και κωδικός στην πλατφόρμα. Μπορείτε επίσης να συνεργαστείτε σε έργα με άλλους προγραμματιστές. Το Docker Hub διαθέτει δωρεάν δημόσια επιλογή ή ιδιωτικά repos επί πληρωμή για συγκεκριμένες εξουσιοδοτημένες ομάδες.
7. Docker Networking
Η δικτύωση Docker είναι μια δυνατότητα που επιτρέπει στα κοντέινερ να επικοινωνούν μεταξύ τους και με εξωτερικούς πόρους. Τα δίκτυα παρέχουν ελεγχόμενη και απομονωμένη επικοινωνία μεταξύ κοντέινερ. Αυτά μπορεί να είναι κοντέινερ που εκτελούνται σε μεμονωμένους ή πολλαπλούς κεντρικούς υπολογιστές.
Όταν εκτελείτε ένα κοντέινερ στο μηχάνημά σας, δεν εκτίθεται σε εξωτερικά δίκτυα. Χρησιμοποιείτε θύρες για να εκθέσετε τα κοντέινερ σε εξωτερικές διευθύνσεις IP, υπηρεσίες DNS, πίνακες διαδρομών και πύλες διαδικτύου.
Η δικτύωση επιτρέπει στα κοντέινερ να λειτουργούν σε απομονωμένα περιβάλλοντα δικτύου. Τα δίκτυα παρέχουν χώρους ονομάτων και διευθύνσεις IP, μειώνοντας τη σύγκρουση κοντέινερ και ενισχύοντας την ασφάλεια.
8. Docker Volumes
Στο Docker, οι τόμοι είναι ένας μηχανισμός που χρησιμοποιείται για την αποθήκευση μόνιμα δεδομένων. Από σχεδίαση, τα δοχεία είναι εφήμερα. Αυτό σημαίνει ότι είναι εύκολο να τα αντικαταστήσετε ή να τα καταστρέψετε με όλα τα δεδομένα τους. Ωστόσο, υπάρχουν περιπτώσεις που θα θέλατε να διατηρήσετε τα δεδομένα. Σε τέτοιες περιπτώσεις, μπορείτε να χρησιμοποιήσετε τόμους Docker για να διαχειριστείτε μόνιμα δεδομένα.
Οι τόμοι έχουν επίσης άλλες χρήσεις, συμπεριλαμβανομένης της δυνατότητας κοινής χρήσης δεδομένων μεταξύ κοντέινερ. Είναι εύκολο να δημιουργηθούν αντίγραφα ασφαλείας και να μεταφερθούν σε σύγκριση με άλλες μορφές αποθήκευσης. Επιπλέον, μπορείτε να διαχειριστείτε τόμους χρησιμοποιώντας το Docker CLI ή το API.
Εάν εκτελείτε ένα κοντέινερ χωρίς τόμο, το Docker δημιουργεί αυτόματα ένα. Μπορείτε επίσης να δημιουργήσετε και να διαχειριστείτε τόμους που έχουν απομονωθεί από οποιοδήποτε κοντέινερ. Χρησιμοποιήστε την παρακάτω εντολή για να δημιουργήσετε έναν τόμο.
docker volume create my-vol
Για να δείτε τον τόμο που δημιουργήσατε, εκτελέστε την ακόλουθη εντολή:
docker volume ls //local my-vol
Στη συνέχεια, μπορείτε να προσαρτήσετε τους τόμους σε οποιοδήποτε δοχείο επιθυμείτε. Μπορείτε να διαβάσετε περισσότερα για τους τόμους στο Λιμενεργάτης επίσημη τεκμηρίωση.
Άλλα χαρακτηριστικά Docker
Το Docker είναι μια από τις καλύτερες επιλογές για διαχείριση κοντέινερ και έλεγχο έκδοσης. Εάν μάθετε το σύνολο εργαλείων του Docker, μπορείτε να ενισχύσετε και να βελτιστοποιήσετε τη ροή εργασιών ανάπτυξής σας.
Το Docker έχει πολλές δυνατότητες που μπορείτε να χρησιμοποιήσετε για να διαχειριστείτε τις εφαρμογές σας. Αφού κατακτήσετε τα βασικά χαρακτηριστικά, μπορείτε να εξερευνήσετε άλλες σύνθετες δυνατότητες, όπως το Docker Swarm που χρησιμοποιείται για την ενορχήστρωση σύνθετων εφαρμογών.