Επιστροφή στο blog

Πώς να εγκαταστήσετε και να ρυθμίσετε το Docker Compose στο Ubuntu 20.04

Πώς να εγκαταστήσετε και να ρυθμίσετε το Docker Compose στο Ubuntu 20.04

Εισαγωγή

Η χρήση κοντέινερ (containerization) έχει αποκτήσει μεγάλη δυναμική στον χώρο της τεχνολογίας λογισμικού τα τελευταία χρόνια. Αυτό μπορεί να αποδοθεί στο Docker το οποίο είναι μια πλατφόρμα κοντέινερ που απλοποιεί τη διαχείριση των διεργασιών μέσα σε κοντέινερ.

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

Αν και ο διαχωρισμός μιας εφαρμογής σε πολλαπλές υπηρεσίες είναι σίγουρα εξαιρετικός, συνοδεύεται από την επιβάρυνση της διαχείρισης πολλών κοντέινερ. Πρέπει να διασφαλίσετε ότι επικοινωνούν, εκκινούν και τερματίζουν τη λειτουργία τους ταυτόχρονα. Χάρη σε ένα εργαλείο που ονομάζεται Docker Compose, αυτό γίνεται μια εύκολη εργασία. Το Docker Compose επιτρέπει στους προγραμματιστές να εκτελούν εφαρμογές Docker πολλαπλών κοντέινερ χρησιμοποιώντας κανόνες που ορίζονται σε ένα YAML αρχείο. Το αρχείο YAML περιέχει ορισμούς για τις υπηρεσίες της εφαρμογής και τον τρόπο με τον οποίο μπορούν να μοιράζονται τόμους δεδομένων και δίκτυα. Μόλις ορίσετε τις υπηρεσίες, μπορείτε να τις εκκινήσετε όλες με μία μόνο εντολή. Σε αυτόν τον οδηγό, θα σας δείξουμε πώς να εγκαταστήσετε, να ρυθμίσετε και να ξεκινήσετε με το Docker Compose στο Ubuntu 20.04.

Προαπαιτούμενα

Βήμα 1: Εγκατάσταση του Docker Compose

Θα κάνουμε λήψη της τελευταίας σταθερής έκδοσης του Docker Compose από το επίσημο αποθετήριο GitHub. Μπορείτε να βρείτε την τελευταία έκδοση από τη σελίδα εκδόσεων (releases), κατά τη στιγμή της συγγραφής αυτού του οδηγού, η τελευταία έκδοση είναι 1.28.5.

Αρχικά, συνδεθείτε στον διακομιστή Ubuntu με τον μη-root sudo χρήστη και εισαγάγετε την ακόλουθη εντολή. Πραγματοποιεί λήψη της τελευταίας έκδοσης (1.28.5) και αποθηκεύει το εκτελέσιμο αρχείο στον κατάλογο /usr/local/bin/docker-compose . Αυτό το καθιστά καθολικά προσβάσιμο ως docker-compose:

Μόλις ολοκληρωθεί η λήψη, εισαγάγετε την ακόλουθη εντολή για να ορίσετε τα κατάλληλα δικαιώματα ώστε η εντολή docker-compose να είναι εκτελέσιμη:

Τώρα, επαληθεύστε ότι η εγκατάσταση είναι επιτυχής και η εντολή μπορεί να κληθεί εκτελώντας την ακόλουθη εντολή:

Θα πρέπει να λάβετε ένα αποτέλεσμα σαν αυτό:

docker compose version

Αυτό επιβεβαιώνει ότι το Docker Compose έχει εγκατασταθεί με επιτυχία στο σύστημά σας.

Βήμα 2: Δημιουργία του αρχείου docker-compose.yml

Για να σας βοηθήσουμε να κατανοήσετε πώς να εργάζεστε με το docker-compose.yml, θα ρυθμίσουμε ένα περιβάλλον διακομιστή ιστού χρησιμοποιώντας την επίσημη Nginx image από το Docker Hub. Μόλις αναπτυχθεί, θα πρέπει να είμαστε σε θέση να εξυπηρετήσουμε μια βασική σελίδα HTML από το κοντέινερ.

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

Στη συνέχεια, μεταβείτε στον κατάλογο:

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

  • Δημιουργία μιας σελίδας HTML

Ας χρησιμοποιήσουμε τον επεξεργαστή κειμένου nano για να δημιουργήσουμε το αρχείο index.html μέσα στον φάκελο app:

Στη συνέχεια, προσθέστε τον ακόλουθο κώδικα HTML στο αρχείο:

Για να αποθηκεύσετε το αρχείο, πατήστε CTRL +O, ENTER. Στη συνέχεια, κλείστε με CTRL +X. Έπειτα, θα δημιουργήσουμε το docker-compose.yml αρχείο μέσα στον ριζικό φάκελο του έργου μας.

  • Φιλοξενία της σελίδας HTML με χρήση του docker-compose

Στη συνέχεια, εισαγάγετε την ακόλουθη εντολή για να ανοίξετε το αρχείο με τον επεξεργαστή nano :

Μετά από αυτό, προσθέστε το ακόλουθο απόσπασμα κώδικα μέσα στο αρχείο:

Το docker-compose.yml το αρχείο ξεκινά με τον αριθμό έκδοσης που ενημερώνει το Docker Compose για το ποια έκδοση διαμόρφωσης χρησιμοποιούμε. Ακολουθήστε αυτόν τον σύνδεσμο για να μάθετε περισσότερα σχετικά με το την έκδοση του Docker Compose.

Μετά τον αριθμό έκδοσης, έχουμε το μπλοκ υπηρεσιών που περιέχει τις υπηρεσίες που απαρτίζουν το περιβάλλον. Σε αυτόν τον οδηγό, έχουμε ορίσει μόνο μία υπηρεσία που ονομάζεται webserver. Η υπηρεσία webserver θα χρησιμοποιήσει την εικόνα nginx:alpine. Έχουμε επίσης ορίσει την ανακατεύθυνση θυρών 8000:80. Αυτό σημαίνει ότι όλα τα αιτήματα από τη θύρα 8000 στο κεντρικό μηχάνημα θα ανακατευθύνονται στο κοντέινερ του webserver στη θύρα 80, όπου εκτελείται το Nginx.

Η οδηγία volumes σάς επιτρέπει να δημιουργήσετε έναν κοινόχρηστο τόμο μεταξύ του κεντρικού μηχανήματος και του κοντέινερ, τον οποίο μπορούμε να χρησιμοποιήσουμε για τη διατήρηση δεδομένων. Στο απόσπασμα κώδικα yml, μοιραζόμαστε τον τοπικό φάκελο app με το κοντέινερ. Μέσα στο κοντέινερ, θα τοποθετηθεί στη διαδρομή /usr/share/nginx/html. Συνεπώς, αντικαθιστά την προεπιλεγμένη ρίζα εγγράφων για το Nginx. Μπορείτε να αποθηκεύσετε και να κλείσετε το αρχείο τώρα.

Μέχρι αυτό το σημείο, έχετε δημιουργήσει την υποδειγματική ιστοσελίδα HTML και το αρχείο docker-compose.yml με οδηγίες για τη δημιουργία ενός περιβάλλοντος διακομιστή ιστού σε κοντέινερ. Ας δούμε πώς μπορούμε να εκκινήσουμε αυτήν τη ρύθμιση στο επόμενο βήμα.

Βήμα 3: Εκτέλεση της εντολής Docker Compose

Σε αυτό το βήμα, θα εκτελέσουμε την εντολή για την εκκίνηση του περιβάλλοντος κοντέινερ. Παρακάτω είναι η μοναδική εντολή που θα ξεκινήσει τη διαδικασία λήψης των εικόνων Docker, θα δημιουργήσει ένα κοντέινερ για την υπηρεσία webserver και θα εκκινήσει το περιβάλλον κοντέινερ στο παρασκήνιο:

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

 compose up

Όταν ολοκληρωθεί η εκτέλεση της εντολής, θα ξεκινήσει το περιβάλλον κοντέινερ που εκτελείται στο παρασκήνιο. Μπορείτε να επαληθεύσετε ότι εκτελείται χρησιμοποιώντας την εντολή:

Θα πρέπει να λάβετε ένα παρόμοιο αποτέλεσμα:

 compose ps

Εάν πλοηγηθείτε στη διεύθυνση IP ή στο όνομα τομέα του διακομιστή σας και προσθέσετε τη θύρα 8000, δηλαδή server_domain_or_IP:8000 θα πρέπει να μπορείτε να δείτε την υποδειγματική σελίδα HTML που δημιουργήσαμε:

docker compose webpage

Αν θυμάστε, δημιουργήσαμε έναν κοινόχρηστο τόμο μεταξύ του κοντέινερ και του συστήματος υποδοχής. Αυτό διατηρεί τα αρχεία στο κοντέινερ συγχρονισμένα με τα αρχεία στο σύστημα υποδοχής. Επομένως, εάν κάνετε μια αλλαγή στο αρχείο index.html, συγχρονίζεται αυτόματα με το κοντέινερ και αντικατοπτρίζεται όταν ανανεώνετε τη σελίδα στο πρόγραμμα περιήγησης. Μπορείτε να δοκιμάσετε με τον επεξεργαστή nano. Ας μάθουμε μερικές ακόμη εντολές στο επόμενο βήμα.

Βήμα 4: Πρόσθετες εντολές Docker Compose για τη διαχείριση περιβαλλόντων κοντέινερ

Τώρα που αναπτύξατε με επιτυχία μια ιστοσελίδα χρησιμοποιώντας τη μοναδική εντολή docker-compose-up, ας δούμε μερικές πρόσθετες εντολές που μπορούν να φανούν χρήσιμες στη διαχείριση περιβαλλόντων σε κοντέινερ.

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

Εδώ είναι ένα δείγμα εξόδου των αρχείων καταγραφής:

 logs

Μπορείτε να διακόψετε προσωρινά την εκτέλεση του περιβάλλοντος χωρίς να αλλάξετε την κατάσταση των κοντέινερ χρησιμοποιώντας την εντολή:

 compose pause

Στη συνέχεια, για να καταργήσετε την παύση ή να συνεχίσετε τις εκτελέσεις, χρησιμοποιήστε την εντολή:

docker compose unpause

Ίσως θέλετε να σταματήσετε τα κοντέινερ χωρίς να καταστρέψετε τα δεδομένα τους. Για να το κάνετε αυτό, χρησιμοποιήστε την ακόλουθη εντολή:

stop

Για να καταστρέψετε τα κοντέινερ, τα δίκτυα και τους τόμους που σχετίζονται με το περιβάλλον κοντέινερ, χρησιμοποιήστε την εντολή:

docker compose down

Έχετε υπόψη σας ότι η παραπάνω εντολή δεν καταργεί τις βασικές εικόνες που χρησιμοποιούνται από το Docker Compose για την εκκίνηση του περιβάλλοντος. Αυτό εξασφαλίζει ταχύτερα builds όταν εκκινείτε το περιβάλλον σας, καθώς ελέγχει το τοπικό μηχάνημα για αντίστοιχες εικόνες. Εάν θέλετε να καταργήσετε εντελώς τη βασική εικόνα, πρέπει να το καθορίσετε στην εντολή. Για το παράδειγμά μας, μπορούμε να καταργήσουμε την nginx:alpine εικόνα χρησιμοποιώντας την εντολή:

 image remove

Τέλος, μπορείτε να βρείτε περισσότερες εντολές από την επίσημη Docker Compose Command-line reference τεκμηρίωση.

Συμπέρασμα

Σε αυτόν τον οδηγό, εγκαταστήσατε το Docker Compose σε Ubuntu 20.04, δημιουργήσατε ένα περιβάλλον σε κοντέινερ βασισμένο σε μια εικόνα διακομιστή ιστού Nginx και μάθατε πώς να διαχειρίζεστε τις διάφορες υπηρεσίες χρησιμοποιώντας εντολές Docker Compose.

Εάν θέλετε να μάθετε πώς να αναπτύξετε μια πραγματική δυναμική εφαρμογή που εξαρτάται από πολλά κοντέινερ, διαβάστε τον οδηγό μας σχετικά με την Ανάπτυξη Laravel, Nginx και MySQL με το Docker Compose. Μπορείτε επίσης να βρείτε μια πλήρη λίστα εντολών docker-compose από την επίσημη Τεκμηρίωση του Docker Compose.

Καλή συνέχεια!

author

Pranay Kapgate

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.