Docker Compose είναι ένα ισχυρό και δημοφιλές εργαλείο που χρησιμοποιείται για τη διαχείριση και την ανάπτυξη εφαρμογών που βασίζονται σε Docker. Σας επιτρέπει να ορίσετε, να διαμορφώσετε και να εκτελέσετε πολλά Docker κοντέινερ ως ένα μόνο έργο, απλοποιώντας την ανάπτυξη εφαρμογών και διασφαλίζοντας τη συνέπεια μεταξύ των περιβαλλόντων ανάπτυξης και παραγωγής.
Ακολουθούν ορισμένες έννοιες και παραδείγματα Docker Compose:
Ορίστε το έργο χρησιμοποιώντας το αρχείο docker-compose.yml
Στο docker-compose.yml αρχείο, μπορείτε να ορίσετε τις υπηρεσίες που απαιτούνται για την εφαρμογή σας. Για παράδειγμα, για να αναπτύξετε μια εφαρμογή web PHP με βάση δεδομένων MySQL, μπορείτε να ορίσετε δύο υπηρεσίες ως εξής:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
Στο παραπάνω απόσπασμα κώδικα, ορίζουμε δύο υπηρεσίες: web και db. Η web υπηρεσία θα χρησιμοποιήσει την PHP 7.4 image με Apache, θα ακούσει στη θύρα 80 και θα προσαρτήσει τον ./app κατάλογο από τον κεντρικό υπολογιστή στον /var/www/html κατάλογο στο container. Η db υπηρεσία θα χρησιμοποιήσει την MySQL 5.7 image και θα ορίσει ορισμένες μεταβλητές περιβάλλοντος που απαιτούνται για τη βάση δεδομένων.
Χρήση Docker Compose εντολής
Αφού ορίσετε το έργο στο docker-compose.yml αρχείο, μπορείτε να χρησιμοποιήσετε Docker Compose εντολές για τη διαχείριση των υπηρεσιών.
-
Ξεκινήστε το έργο:
docker-compose upΑυτή η εντολή θα ξεκινήσει τα κοντέινερ για τις υπηρεσίες που ορίζονται στο
docker-compose.ymlαρχείο. -
Σταματήστε και αφαιρέστε τα δοχεία:
docker-compose downΑυτή η εντολή σταματά και αφαιρεί όλα τα κοντέινερ που σχετίζονται με το έργο.
-
Λίστα εκτελούμενων κοντέινερ:
docker-compose psΑυτή η εντολή θα εμφανίσει την κατάσταση των κοντέινερ στο έργο.
-
Προβολή αρχείων καταγραφής υπηρεσιών:
docker-compose logsΑυτή η εντολή εμφανίζει τα αρχεία καταγραφής των υπηρεσιών στο έργο.
Μεταβλητές περιβάλλοντος και προσαρμογή
Docker Compose σας επιτρέπει να χρησιμοποιείτε μεταβλητές περιβάλλοντος για να προσαρμόζετε διαμορφώσεις για διαφορετικά περιβάλλοντα, όπως ανάπτυξη και παραγωγή. Μπορείτε να χρησιμοποιήσετε μεταβλητές περιβάλλοντος στο docker-compose.yml αρχείο και να ορίσετε τις τιμές τους σε αντίστοιχα .env αρχεία.
Για παράδειγμα, εάν θέλετε να ορίσετε μια μεταβλητή περιβάλλοντος για τη θύρα της web υπηρεσίας, μπορείτε να προσθέσετε μια γραμμή στο .env αρχείο ως εξής:
WEB_PORT=8080
Στη συνέχεια, στο docker-compose.yml αρχείο, μπορείτε να χρησιμοποιήσετε αυτήν τη μεταβλητή περιβάλλοντος ως εξής:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Κατά την εκτέλεση της docker-compose up εντολής, η web υπηρεσία θα ακούει στη θύρα 8080 αντί για τη θύρα 80.
Ενσωμάτωση με Docker το Swam
Εάν θέλετε να αναπτύξετε την εφαρμογή σας σε ένα κατανεμημένο περιβάλλον με πολλούς κόμβους, Docker Compose μπορείτε να ενσωματώσετε με Docker Swarm. Αυτό σας επιτρέπει να διαχειρίζεστε υπηρεσίες σε πολλούς κόμβους σε ένα Docker σύμπλεγμα.
Για να χρησιμοποιήσετε αυτήν την ενοποίηση, πρέπει απλώς να προσθέσετε τις επιλογές --orchestrate ή κατά την εκτέλεση ή εντολές σε ένα περιβάλλον. --with-registry-auth docker stack deploy docker-compose up Swarm
Docker Compose είναι ένα χρήσιμο εργαλείο για εύκολη και αποτελεσματική ανάπτυξη, δοκιμή και ανάπτυξη εφαρμογών. Ελαχιστοποιεί τις διαφορές μεταξύ των περιβαλλόντων ανάπτυξης και παραγωγής, διασφαλίζει τη συνέπεια στη διαδικασία ανάπτυξης λογισμικού και ενισχύει την παραγωγικότητα των ομάδων ανάπτυξης.

