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 είναι ένα χρήσιμο εργαλείο για εύκολη και αποτελεσματική ανάπτυξη, δοκιμή και ανάπτυξη εφαρμογών. Ελαχιστοποιεί τις διαφορές μεταξύ των περιβαλλόντων ανάπτυξης και παραγωγής, διασφαλίζει τη συνέπεια στη διαδικασία ανάπτυξης λογισμικού και ενισχύει την παραγωγικότητα των ομάδων ανάπτυξης.