Ένας οδηγός για αρχάριους στο Docker - πώς να δημιουργήσετε μια πλευρά πελάτη / διακομιστή με το Docker-Compose

Είστε προγραμματιστής και θέλετε να ανακαλύψετε το docker-compose; Αυτό το άρθρο απευθύνεται σε εσάς.

Τα δικαιώματα πνευματικής ιδιοκτησίας για την δημοσίευση

Μετά από μια σύντομη εισαγωγή στο Docker-Compose, θα μπορείτε να δημιουργήσετε την πρώτη εφαρμογή πελάτη / διακομιστή με το Docker.

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

Τι είναι το Docker-Compose;

Το Docker-Compose είναι ένα εργαλείο που παρέχεται από το Docker. Για να το κάνετε απλό, αυτό το εργαλείο εφαρμόζεται για την επίλυση αρχιτεκτονικών προβλημάτων στα έργα σας.

Όπως ίσως έχετε παρατηρήσει στο προηγούμενο άρθρο μου, δημιουργήσαμε ένα απλό πρόγραμμα που εμφανίζει το "Docker is magic!" Όταν ξεκίνησε.

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

Ωστόσο, πώς ξέρετε αν χρειάζεστε Docker-Compose; Είναι εύκολο αν η εφαρμογή σας απαιτεί την εκτέλεση πολλών υπηρεσιών, χρειάζεστε αυτό το εργαλείο. Για παράδειγμα, εάν δημιουργήσετε έναν ιστότοπο ο οποίος χρειάζεται να συνδεθεί στη βάση δεδομένων σας για να πιστοποιήσει τους χρήστες (εδώ 2 υπηρεσίες, ιστότοπος και βάση δεδομένων).

Το Docker-compose σας προσφέρει τη δυνατότητα να ξεκινήσετε όλες αυτές τις υπηρεσίες σε μία μόνο εντολή.

Διαφορά μεταξύ του Docker και του Docker-Compose

Το Docker χρησιμοποιείται για τη διαχείριση ενός συγκεκριμένου κοντέινερ (υπηρεσία) για την εφαρμογή σας.

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

Docker (μεμονωμένο δοχείο) VS Docker-Compose (αρκετοί περιέκτες)

Μια τυπική περίπτωση χρήσης

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

Φανταστείτε, είστε ο υπερήφανος δημιουργός του λογισμικού ιστού σας.

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

Ξεκινάτε να είστε επιτυχημένοι και ο διακομιστής σας δεν επαρκεί πλέον. Επομένως, αποφασίζετε να μεταφέρετε ολόκληρο το λογισμικό σας σε άλλο μηχάνημα.

Δυστυχώς, δεν χρησιμοποιήσατε το docker-compose. Έτσι θα πρέπει να μεταναστεύσετε και να διαμορφώσετε ξανά τις υπηρεσίες σας το ένα μετά το άλλο, ελπίζοντας ότι τίποτα δεν έχει ξεχαστεί.

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

Τώρα, ας δημιουργήσουμε την πρώτη εφαρμογή πελάτη / διακομιστή με το Docker-Compose

Τώρα που ξέρετε τι θα χρησιμοποιηθεί για το docker-compose, ήρθε η ώρα να δημιουργήσετε την πρώτη εφαρμογή πελάτη / διακομιστή!

Ο στόχος αυτού του εκπαιδευτικού είναι να δημιουργηθεί ένας μικρός ιστότοπος (server) στην Python που θα περιέχει μια πρόταση. Αυτή η πρόταση πρέπει να ανακτηθεί από ένα πρόγραμμα (client) στο Python που θα εμφανίσει την πρόταση.

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

1. Δημιουργήστε το έργο σας

Για να δημιουργήσετε την πρώτη εφαρμογή πελάτη / διακομιστή σας, σας καλώ να δημιουργήσετε ένα φάκελο στον υπολογιστή σας. Πρέπει να περιέχει ριζικά τα παρακάτω αρχεία και φακέλους:

  • Ένα αρχείο 'docker-compose.yml' (αρχείο docker-compose που θα περιέχει τις απαραίτητες οδηγίες για τη δημιουργία των διαφορετικών υπηρεσιών).
  • Ένα φάκελο 'server' (αυτός ο φάκελος θα περιέχει τα αρχεία που είναι απαραίτητα για τη ρύθμιση του διακομιστή).
  • Ένας φάκελος "πελάτης" (αυτός ο φάκελος θα περιέχει τα αρχεία που είναι απαραίτητα για τη ρύθμιση του πελάτη).

Θα πρέπει να έχετε αυτήν την αρχιτεκτονική φακέλων:

.
├── πελάτης /
├── docker-compose.yml
└── server /
2 καταλόγους, 1 αρχείο

2. Δημιουργήστε το διακομιστή σας

Για να ξεκινήσετε με τις υπενθυμίσεις των βασικών στοιχείων του Docker, θα ξεκινήσουμε δημιουργώντας το διακομιστή.

2α. Δημιουργία αρχείων

Μεταβείτε στο φάκελο "διακομιστή" και δημιουργήστε τα ακόλουθα αρχεία:

  • Ένα αρχείο 'server.py' (python αρχείο που θα περιέχει τον κωδικό διακομιστή).
  • Ένα αρχείο 'index.html' (αρχείο HTML που θα περιέχει την πρόταση που θα εμφανίζεται).
  • Ένα αρχείο 'Dockerfile' (αρχείο docker που θα περιέχει τις απαραίτητες οδηγίες για τη δημιουργία του περιβάλλοντος του διακομιστή).

Θα πρέπει να έχετε αυτή την αρχιτεκτονική φακέλων στην ακόλουθη διαδρομή 'server /':

.
├─Dockerfile
├── index.html
└── server.py
0 καταλόγους, 3 αρχεία

2b. Επεξεργαστείτε το αρχείο Python

Μπορείτε να προσθέσετε τον ακόλουθο κώδικα στο αρχείο 'server.py':

Αυτός ο κώδικας θα σας επιτρέψει να δημιουργήσετε έναν απλό διακομιστή ιστού μέσα σε αυτόν τον φάκελο. Θα ανακτήσει το περιεχόμενο του αρχείου index.html για να το μοιραστεί σε μια ιστοσελίδα.

2γ. Επεξεργαστείτε το αρχείο Html

Μπορείτε να προσθέσετε την ακόλουθη πρόταση στο αρχείο 'index.html':

Ο διακομιστής θα μοιραστεί αυτό το αρχείο κατά την εκκίνηση και αυτή η πρόταση θα εμφανιστεί.

2δ. Επεξεργαστείτε το αρχείο Docker

Εδώ θα δημιουργήσουμε ένα βασικό Dockerfile που θα είναι υπεύθυνο για την εκτέλεση του αρχείου Python. Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε την επίσημη εικόνα που δημιουργήθηκε για να εκτελέσει Python.

3. Δημιουργήστε τον πελάτη σας

Για να συνεχίσετε με υπενθυμίσεις των βασικών στοιχείων του Docker, θα δημιουργήσουμε τον πελάτη.

3α. Δημιουργία αρχείων

Μεταβείτε στο φάκελο "client" και δημιουργήστε τα ακόλουθα αρχεία:

  • Ένα αρχείο 'client.py' (python αρχείο που θα περιέχει τον κωδικό πελάτη).
  • Ένα αρχείο 'Dockerfile' (αρχείο docker που θα περιέχει τις απαραίτητες οδηγίες για τη δημιουργία του περιβάλλοντος του πελάτη).

Κανονικά θα πρέπει να έχετε αυτήν την αρχιτεκτονική φακέλων στην ακόλουθη διαδρομή 'client /':

.
├─_ client.py
└── Dockerfile
0 καταλόγους, 2 αρχεία

3b. Επεξεργαστείτε το αρχείο Python

Μπορείτε να προσθέσετε τον ακόλουθο κώδικα στο αρχείο 'client.py':

Αυτός ο κώδικας θα σας επιτρέψει να αποκτήσετε το περιεχόμενο της ιστοσελίδας του διακομιστή και να το εμφανίσετε.

3c. Επεξεργαστείτε το αρχείο Docker

Όσο για το διακομιστή, θα δημιουργήσουμε ένα βασικό Dockerfile που θα είναι υπεύθυνο για την εκτέλεση του αρχείου Python.

4. Πίσω στο Docker-Compose

Όπως ίσως έχετε παρατηρήσει, έχουμε δημιουργήσει δύο διαφορετικά έργα, τον εξυπηρετητή και τον πελάτη, και τα δύο με Dockerfile.

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

Τώρα θα επεξεργαστούμε το "docker-compose.yml" στη ρίζα του αποθετηρίου.

Σημείωση: Το Docker-Compose είναι πλήρες, αυτό το άρθρο στοχεύει να σας δώσει ένα συγκεκριμένο και τυπικό παράδειγμα. Γι 'αυτό δεν θα δείτε όλες τις λέξεις-κλειδιά.

5. Κατασκευάστε το Docker-Compose

Αφού ρυθμίσετε τη συνάρτηση docker-compose, πρέπει να δημιουργηθεί η εφαρμογή πελάτη / διακομιστή σας. Αυτό το βήμα αντιστοιχεί στην εντολή "build docker" αλλά εφαρμόζεται στις διάφορες υπηρεσίες.

$ docker-compose build

6. Εκτέλεση λειτουργίας Docker-Compose

Η υποδοχή σας είναι χτισμένη! Τώρα ήρθε η ώρα να ξεκινήσετε! Αυτό το βήμα αντιστοιχεί στην εντολή "run docker run" αλλά εφαρμόζεται στις διάφορες υπηρεσίες.

$ docker-συνθέστε επάνω

Εκεί πηγαίνετε, αυτό είναι. Θα πρέπει να δείτε το "Docker-Compose is magic!" Που εμφανίζεται στο τερματικό σας.

Σημείωση: Όπως υποδεικνύεται στο σεμινάριο, η υπηρεσία "διακομιστή" χρησιμοποιεί τη θύρα 1234 του υπολογιστή σας για τη διανομή του περιεχομένου της. Αν ανοίξετε τη σελίδα "http: // localhost: 1234 / 'στον υπολογιστή σας, θα πρέπει να δείτε ότι το" Docker-Compose is magic! ".

Ο κωδικός είναι διαθέσιμος

Εάν θέλετε να ανακτήσετε τον πλήρη κώδικα για να το ανακαλύψετε εύκολα ή να το εκτελέσετε, το έχω στη διάθεσή σας στο Github μου.

Χρήσιμες εντολές για το Docker

Ως συνήθως, έχω προετοιμάσει μια λίστα παραγγελιών που μπορεί να είναι χρήσιμες για εσάς με το docker-compose.

  • Σταματάει τα δοχεία και αφαιρεί τα δοχεία, τις εικόνες ... που δημιουργούνται από το "docker-compose up".
$ docker-συνθέστε κάτω
  • Εμφανίζει την έξοδο αρχείου καταγραφής από υπηρεσίες (παράδειγμα: 'docker-compose logs -f client').
$ docker-compose logs -f [όνομα υπηρεσίας]
  • Καταγράφει τα δοχεία.
$ docker-συνθέστε ps
  • Εκτελεί εντολή σε ένα τρέχον δοχείο (παράδειγμα: 'docker-compose exec server ls').
$ docker-compose exec [όνομα υπηρεσίας] [εντολή]
  • Εμφανίζει τις εικόνες.
$ docker-συνθέτουν εικόνες

Εχει ήδη τελειώσει…

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

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

-> Εγγραφείτε στο ενημερωτικό δελτίο [Here We Code]

Μην διστάσετε να μου δώσετε κάποια σχόλια για να βελτιώσω τα μελλοντικά μου άρθρα στα παρακάτω σχόλια.