Docker Compose este un instrument puternic și popular folosit pentru gestionarea și implementarea aplicațiilor bazate pe Docker. Vă permite să definiți, să configurați și să rulați mai multe Docker containere ca un singur proiect, simplificând implementarea aplicațiilor și asigurând coerența între mediile de dezvoltare și de producție.
Mai jos sunt câteva concepte și exemple de Docker Compose:
Definiți proiectul folosind fișierul docker-compose.yml
În docker-compose.yml
fișier, puteți defini serviciile necesare aplicației dvs. De exemplu, pentru a implementa o aplicație web PHP cu o bază de date MySQL, puteți defini două servicii după cum urmează:
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
În fragmentul de cod de mai sus, definim două servicii: web
și db
. Serviciul web
va folosi PHP 7.4 image cu Apache, va asculta pe portul 80 și va monta ./app
directorul de la gazdă în /var/www/html
directorul din container. Serviciul db
va folosi MySQL 5.7 image și va seta unele variabile de mediu necesare pentru baza de date.
Folosind Docker Compose comanda
Odată ce ați definit proiectul în docker-compose.yml
fișier, puteți utiliza Docker Compose comenzi pentru a gestiona serviciile.
-
Începe proiectul:
docker-compose up
Această comandă va porni containerele pentru serviciile definite în
docker-compose.yml
fișier. -
Opriți și îndepărtați recipientele:
docker-compose down
Această comandă oprește și elimină toate containerele legate de proiect.
-
Lista containerelor care rulează:
docker-compose ps
Această comandă va afișa starea containerelor din proiect.
-
Vizualizați jurnalele de service:
docker-compose logs
Această comandă arată jurnalele serviciilor din proiect.
Variabile de mediu și personalizare
Docker Compose vă permite să utilizați variabile de mediu pentru a personaliza configurațiile pentru diferite medii, cum ar fi dezvoltarea și producția. Puteți utiliza variabile de mediu în docker-compose.yml
fișier și puteți defini valorile acestora în .env
fișierele corespunzătoare.
De exemplu, dacă doriți să definiți o variabilă de mediu pentru portul serviciului web
, puteți adăuga o linie la .env
fișier astfel:
WEB_PORT=8080
Apoi, în docker-compose.yml
fișier, puteți utiliza această variabilă de mediu astfel:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Când rulează docker-compose up
comanda, web
serviciul va asculta pe portul 8080 în loc de portul 80.
Integrarea cu Docker Swam
Dacă doriți să implementați aplicația dvs. într-un mediu distribuit cu mai multe noduri, Docker Compose puteți integra cu Docker Swarm. Acest lucru vă permite să gestionați serviciile pe mai multe noduri dintr-un Docker cluster.
Pentru a utiliza această integrare, trebuie doar să adăugați opțiunile --orchestrate
sau --with-registry-auth
când rulați docker stack deploy
sau docker-compose up
comenzi într-un Swarm mediu.
Docker Compose este un instrument util pentru dezvoltarea, testarea și implementarea aplicațiilor ușoare și eficiente. Minimizează diferențele dintre mediile de dezvoltare și de producție, asigură coerența procesului de dezvoltare a software-ului și sporește productivitatea echipelor de dezvoltare.