Docker Tutorial για αρχάριους: Βασικά, Architecture, Containers
⚡ Έξυπνη Σύνοψη
Το Docker είναι μια πλατφόρμα containerization που συσκευάζει εφαρμογές και τις εξαρτήσεις τους σε φορητά, ελαφριά containers. Αυτή η επισκόπηση εξηγεί την αρχιτεκτονική του Docker, την εγκατάσταση σε Ubuntu, βασικές εντολές και πώς τα κοντέινερ διαφέρουν από τις παραδοσιακές εικονικές μηχανές για ταχύτερη παράδοση λογισμικού.
Το Docker είναι μια από τις πιο δημοφιλείς πλατφόρμες containerization που χρησιμοποιούνται στη σύγχρονη DevOps και ροές εργασίας cloud. Αυτό το σεμινάριο Docker για αρχάριους εξηγεί τι είναι το Docker, πώς λειτουργεί η αρχιτεκτονική Docker, πώς να εγκαταστήσετε το Docker σε Ubuntuκαι τις βασικές εντολές που χρησιμοποιούνται για τη διαχείριση εικόνων και κοντέινερ.
Τι είναι το Docker;
Λιμενεργάτης είναι μια πλατφόρμα ανάπτυξης λογισμικού για εικονικοποίηση που επιτρέπει την εκτέλεση πολλαπλών λειτουργικών συστημάτων στον ίδιο κεντρικό υπολογιστή. Σας βοηθά να διαχωρίσετε την υποδομή από τις εφαρμογές, ώστε να μπορείτε να παρέχετε λογισμικό γρήγορα. Σε αντίθεση με τους υπερεπόπτες, οι οποίοι χρησιμοποιούνται για τη δημιουργία εικονικών μηχανών (VM), το Docker εκτελεί εικονικοποίηση σε επίπεδο συστήματος χρησιμοποιώντας μονάδες που ονομάζονται κοντέινερ Docker.
Τα κοντέινερ Docker εκτελούνται πάνω από το λειτουργικό σύστημα του κεντρικού υπολογιστή, όπως φαίνεται στην παρακάτω εικόνα. Αυτό βελτιώνει τόσο την αποδοτικότητα όσο και την ασφάλεια. Μπορείτε επίσης να εκτελέσετε περισσότερα κοντέινερ από εικονικές μηχανές στην ίδια υποδομή, επειδή τα κοντέινερ χρησιμοποιούν λιγότερους πόρους.

Σε αντίθεση με τις εικονικές μηχανές (VM), οι οποίες μπορούν να επικοινωνούν απευθείας με το υλικό του κεντρικού υπολογιστή (για παράδειγμα, έναν προσαρμογέα Ethernet που δημιουργεί περισσότερους εικονικούς προσαρμογείς), τα κοντέινερ Docker εκτελούνται σε ένα απομονωμένο περιβάλλον πάνω από το λειτουργικό σύστημα του κεντρικού υπολογιστή. Ακόμα κι αν ο κεντρικός υπολογιστής σας εκτελείται Windows, μπορείτε να τρέξετε Linux εικόνες μέσα σε κοντέινερ με τη βοήθεια Hyper-V, το οποίο δημιουργεί αυτόματα μια μικρή εικονική μηχανή για την εικονικοποίηση της βασικής εικόνας.
Τώρα που ξέρετε τι είναι το Docker, ας δούμε τους κύριους λόγους για τους οποίους οι ομάδες το επιλέγουν.
Γιατί να χρησιμοποιήσετε το Docker;
Ακολουθούν οι βασικοί λόγοι για να χρησιμοποιήσετε το Docker:
- Το Docker είναι λογισμικό που χρησιμοποιείται για εικονικοποίηση, επιτρέποντας πολλαπλές λειτουργικά συστήματα να εκτελείται στον ίδιο κεντρικό υπολογιστή.
- Το Docker είναι μια εφαρμογή πελάτη-διακομιστή, που σημαίνει ότι οι πελάτες επικοινωνούν με έναν διακομιστή.
- Οι εικόνες Docker λειτουργούν ως ο «πηγαίος κώδικας» για τα κοντέινερ. Τις χρησιμοποιείτε για να δημιουργήσετε.
- Το Docker υποστηρίζει δύο τύπους μητρώων: δημόσια και ιδιωτικά.
- Τα κοντέινερ είναι οι οργανωτικές μονάδες του Docker. Με απλά λόγια, μια εικόνα είναι ένα πρότυπο και ένα κοντέινερ είναι ένα αντίγραφο αυτού του προτύπου, επομένως μπορείτε να εκτελέσετε πολλά κοντέινερ από την ίδια εικόνα.
Αυτά τα οφέλη προέρχονται από τον τρόπο που έχει σχεδιαστεί το Docker. Η ακόλουθη ενότητα αναλύει την αρχιτεκτονική Docker και τα βασικά στοιχεία της.
Λιμενεργάτης Archiδομή
Τώρα, σε αυτό το σεμινάριο για τα κοντέινερ Docker, ας δούμε τα κύρια στοιχεία της αρχιτεκτονικής Docker.
Docker Engine
Το Docker είναι μια εφαρμογή client-server, που σημαίνει ότι έχουμε clients που αναμεταδίδουν αιτήματα σε έναν server. Το daemon Docker, που ονομάζεται dockerd, είναι η μηχανή Docker που αντιπροσωπεύει τον server. Το daemon και οι clients μπορούν να εκτελούνται στον ίδιο ή σε έναν απομακρυσμένο κεντρικό υπολογιστή και επικοινωνούν μέσω ενός δυαδικού αρχείου client γραμμής εντολών και ενός πλήρους αρχείου. RESTful API που αλληλεπιδρά με το dockerd.
Εικόνες Docker
Οι εικόνες Docker είναι ο «πηγαίος κώδικας» για τα κοντέινερ μας. Τις χρησιμοποιούμε για την κατασκευή κοντέινερ. Οι εικόνες μπορούν να έχουν προεγκατεστημένο λογισμικό, το οποίο επιταχύνει την ανάπτυξη. Είναι φορητές και μπορείτε να χρησιμοποιήσετε υπάρχουσες εικόνες ή να δημιουργήσετε τις δικές σας.
Μητρώα Docker
Το Docker αποθηκεύει τις εικόνες που δημιουργούμε σε μητρώα. Υπάρχουν δημόσια και ιδιωτικά μητρώα. Το Docker έχει ένα δημόσιο μητρώο που ονομάζεται Docker hub, όπου μπορείτε επίσης να αποθηκεύσετε εικόνες ιδιωτικά. Το Docker Hub διαθέτει εκατομμύρια εικόνες που μπορείτε να αρχίσετε να χρησιμοποιείτε αμέσως.
Docker Containers
Τα κοντέινερ είναι οι οργανωτικές μονάδες του Docker και μία από τις βασικές του έννοιες. Όταν δημιουργούμε μια εικόνα και την εκτελούμε, την εκτελούμε μέσα σε ένα κοντέινερ. Η αναλογία με το κοντέινερ χρησιμοποιείται λόγω της φορητότητας του λογισμικού που εκτελείται μέσα σε αυτήν: μπορείτε να το μετακινήσετε, να το "αποστείλετε", να το τροποποιήσετε, να το διαχειριστείτε, να το δημιουργήσετε ή να το καταστρέψετε, ακριβώς όπως τα φορτηγά πλοία χειρίζονται πραγματικά κοντέινερ.
Με απλά λόγια, μια εικόνα είναι ένα πρότυπο και ένα κοντέινερ είναι ένα αντίγραφο αυτού του προτύπου. Μπορείτε να έχετε πολλά κοντέινερ (αντίγραφα) της ίδιας εικόνας.
Η αλληλεπίδραση μεταξύ αυτών των διαφορετικών στοιχείων δείχνει πώς λειτουργεί η τεχνολογία κοντέινερ Docker. Εντολές όπως το docker pull και το docker run, τις οποίες θα καλύψουμε αργότερα, σας επιτρέπουν να διαχειριστείτε αυτήν τη ροή εργασίας.
Έχοντας κατά νου την αρχιτεκτονική, ας εγκαταστήσουμε το Docker ώστε να μπορείτε να δοκιμάσετε αυτά τα στοιχεία μόνοι σας.
Πώς να εγκαταστήσετε το Docker σε Linux/Ubuntu
Παρακάτω ακολουθεί μια βήμα προς βήμα διαδικασία εγκατάστασης του Docker σε Linux/Ubuntu:
Βήμα 1) Για να εγκαταστήσετε το Docker, χρειάζεστε τα πακέτα DEB της ομάδας Docker. Πρώτα, ορισμένες προϋποθέσεις Ubuntu Απαιτούνται πακέτα. Χρησιμοποιήστε την παρακάτω εντολή για να τα εγκαταστήσετε.
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*το σύμβολο "\" δεν είναι απαραίτητο, χρησιμοποιείται για τη νέα γραμμή, αν θέλετε μπορείτε να γράψετε την εντολή χωρίς να χρησιμοποιήσετε το "\" σε μία μόνο γραμμή.
Βήμα 2) Προσθέστε το επίσημο κλειδί Docker GPG με το δακτυλικό αποτύπωμα. Χρησιμοποιήστε την παρακάτω εντολή Docker για να εισαγάγετε το κλειδί GPG.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Βήμα 3) Στη συνέχεια, προσθέστε το αποθετήριο Docker APT χρησιμοποιώντας την παρακάτω εντολή.
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Ενδέχεται να σας ζητηθεί να επιβεβαιώσετε ότι επιθυμείτε να προσθέσετε το αποθετήριο και να προστεθεί αυτόματα το κλειδί GPG στον κεντρικό υπολογιστή σας. Η εντολή lsb_release θα πρέπει να συμπληρώσει το Ubuntu έκδοση διανομής του κεντρικού υπολογιστή σας.
Βήμα 4) Αφού προσθέσετε το κλειδί GPG, ενημερώστε τις πηγές APT χρησιμοποιώντας την παρακάτω εντολή Docker.
$ sudo apt-get update
Τώρα μπορείτε να εγκαταστήσετε το ίδιο το πακέτο Docker.
Βήμα 5) Μόλις ενημερωθούν οι πηγές APT, ξεκινήστε την εγκατάσταση των πακέτων Docker στο Ubuntu χρησιμοποιώντας την παρακάτω εντολή Docker.
$ sudo apt-get install docker-ce
Η παραπάνω εντολή εγκαθιστά το Docker και άλλα απαιτούμενα πακέτα. Πριν από το Docker 1.8.0, το όνομα του πακέτου ήταν lxc-docker, και μεταξύ του Docker 1.8 και 1.13, το όνομα του πακέτου ήταν docker-engine.
ΣΗΜΕΊΩΣΗ: Docker για Windows Απαιτεί Windows 10 Pro ή Enterprise έκδοση 14393 ή Windows Server 2016 RTM, για εκτέλεση.
Πώς να χρησιμοποιήσετε το Docker χρησιμοποιώντας βασικές εντολές Docker
Δείτε πώς μπορείτε να χρησιμοποιήσετε το Docker με μερικές βασικές εντολές του Docker.
Η πιο βασική εντολή που πρέπει να εκτελέσετε μετά την εγκατάσταση του Docker είναι η docker info, όπως αναφέρθηκε προηγουμένως.
$ sudo docker info
Θα πρέπει να λάβετε ένα αποτέλεσμα παρόμοιο με το ακόλουθο.
Όπως φαίνεται στο παραπάνω παράδειγμα Docker, μπορούμε να δούμε πληροφορίες σχετικά με τα κοντέινερ Docker: πόσα εκτελούνται, έχουν τεθεί σε παύση ή έχουν σταματήσει και πόσες εικόνες έχουν ληφθεί. Τώρα ας πάρουμε την πρώτη μας εικόνα.
$ sudo docker pull alpine
Με αυτήν την εντολή, λέμε στο Docker να κατεβάσει την εικόνα alpine, τραβώντας την από το δημόσιο μητρώο στην πιο πρόσφατη έκδοση, η οποία έχει οριστεί από προεπιλογή.
*Το alpine είναι μια ελάχιστη εικόνα Docker που βασίζεται στο Alpine Linux με πλήρες ευρετήριο πακέτων και μέγεθος μόνο 5 MB.
Αν θέλουμε να εκτελέσουμε την εικόνα ως κοντέινερ, χρησιμοποιούμε την ακόλουθη εντολή.
$ sudo docker run -i -t alpine /bin/bash
Η εκτέλεση της εντολής μας στέλνει απευθείας στο τερματικό alpine. Η σημαία -i διατηρεί το STDIN ανοιχτό από το κοντέινερ ακόμα και όταν δεν είστε συνδεδεμένοι σε αυτό. Αυτή η μόνιμη τυπική είσοδος είναι το μισό από αυτό που χρειάζεστε για ένα διαδραστικό κέλυφος. Η σημαία -t είναι το άλλο μισό και δίνει εντολή στο Docker να αντιστοιχίσει ένα ψευδο-tty στο κοντέινερ. Μαζί μας δίνουν ένα διαδραστικό κέλυφος στο νέο κοντέινερ. Βγαίνουμε από το κοντέινερ με μια απλή εντολή εξόδου.
Τώρα, σε αυτό το βασικό σεμινάριο του Docker, μπορούμε να δοκιμάσουμε να εκτελέσουμε ένα Ubuntu εικόνα.
$ sudo docker run -it ubuntu /bin/bash
Παρατηρήστε ότι το Docker ελέγχει για την εικόνα τοπικά και, αν δεν υπάρχει, η εικόνα εξάγεται αυτόματα από τη βιβλιοθήκη εικόνων. Για άλλη μια φορά, έχουμε ένα διαδραστικό κέλυφος που εκτελείται. Μπορούμε επίσης να ονομάσουμε κοντέινερ καθώς τα εκτελούμε.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
Στη συνέχεια, βγαίνουμε ξανά από το περιβάλλον. Μπορούμε επίσης να εκτελέσουμε ένα κοντέινερ που δημιουργήσαμε προηγουμένως χωρίς διαδραστικό κέλυφος.
$ sudo docker start container_name
Και σταματάμε το κοντέινερ γράφοντας docker stop container_name.
$ sudo docker stop container_name
Αν θέλουμε να δούμε όλα τα κοντέινερ που εκτελούνται, απλώς εκτελούμε τα εξής.
$ docker ps
Για όλα τα κοντέινερ, προσθέτουμε "-a" στο τέλος της ίδιας εντολής, όπως στο docker ps -a. Αυτή η εντολή εμφανίζει το ID του κοντέινερ, ποια εικόνα χρησιμοποιεί, πότε δημιουργήθηκε, την κατάσταση εκτέλεσής του, τις εκτεθειμένες θύρες και ένα τυχαία δημιουργημένο όνομα για ευκολότερη διαχείριση.
Όταν εκτελούμε κοντέινερ, συχνά θέλουμε να γνωρίζουμε πόσους πόρους χρησιμοποιούν. Για τον σκοπό αυτό, μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή.
$ docker stats
Μπορείτε επίσης να δείτε ποιες εικόνες έχετε κατεβάσει τοπικά, μαζί με πληροφορίες σχετικά με αυτές.
$ sudo docker images
Η εντολή στο παραπάνω παράδειγμα Docker εμφανίζει κάθε εικόνα Docker με μια ετικέτα που δείχνει την έκδοση της εικόνας, ένα διακριτικό αναγνωριστικό εικόνας, την ημερομηνία δημιουργίας και το μέγεθος της εικόνας.
Για να κατανοήσουμε γιατί τα κοντέινερ αποτελούν μια τέτοια βελτίωση, βοηθάει να εξετάσουμε πώς εξελίχθηκε η εικονικοποίηση.
Τι είναι η εικονικοποίηση;
Παλαιότερα, η ανάπτυξη μιας υπηρεσίας ήταν αργή και επίπονη. Οι προγραμματιστές έγραφαν κώδικα και στη συνέχεια η ομάδα λειτουργιών τον ανέπτυσσε σε μηχανήματα bare-metal, όπου έπρεπε να προσέχουν για εκδόσεις βιβλιοθηκών, ενημερώσεις κώδικα και μεταγλωττιστές γλώσσας, ώστε ο κώδικας να λειτουργεί. Εάν υπήρχαν σφάλματα ή σφάλματα, η διαδικασία ξεκινούσε από την αρχή: οι προγραμματιστές διόρθωναν το πρόβλημα και η ομάδα λειτουργιών αναλάμβανε την ανάπτυξη.
Τα πράγματα βελτιώθηκαν με τη δημιουργία των hypervisors. Οι hypervisors εκτελούν πολλαπλά εικονικές μηχανέςή εικονικές μηχανές (VMs) στον ίδιο κεντρικό υπολογιστή, οι οποίες ενδέχεται να εκτελούνται ή να είναι απενεργοποιημένες. Οι εικονικές μηχανές (VMs) μείωσαν σημαντικά τον χρόνο αναμονής για την ανάπτυξη κώδικα και τη διόρθωση σφαλμάτων, αλλά αυτό που πραγματικά άλλαξε τα δεδομένα ήταν τα κοντέινερ Docker.
Η δημοτικότητα του Docker οφείλεται επίσης σε εργαλεία ενορχήστρωσης που διαχειρίζονται κοντέινερ σε κλίμακα, όπως π.χ. KubernetesΠριν προχωρήσουμε, ακολουθεί μια σύντομη αναφορά στις πιο σημαντικές εντολές του Docker.
Σημαντικές εντολές Docker
Ακολουθούν οι σημαντικές εντολές Docker:
| εντολή | Περιγραφή |
|---|---|
| πληροφορίες αποβάθρας | Εντολή Πληροφοριών |
| λιμνοδεξαμενής-τραβήγματος | Κατεβάστε μια εικόνα |
| docker run -i -t image_name /bin/bash | Εκτελέστε την εικόνα ως κοντέινερ |
| docker start our_container | Έναρξη δοχείου |
| docker stop container_name | Σταματήστε το δοχείο |
| docker ps | Λίστα όλων των κοντέινερ που εκτελούνται |
| στατιστικά αποβάθρας | Πληροφορίες κοντέινερ |
| εικόνες docker | Λίστα εικόνων που λήφθηκαν |
| Εκκαθάριση Docker | Σκοτώστε όλα τα δοχεία που τρέχουν. |
Επίσης, διαβάστε αυτά Ερωτήσεις και απαντήσεις για συνέντευξη εργασίας Docker για νέους αλλά και έμπειρους επαγγελματίες.


