Docker Compose: Grundlæggende og brug

Docker Compose er et kraftfuldt og populært værktøj, der bruges til at administrere og implementere applikationer baseret på Docker. Det giver dig mulighed for at definere, konfigurere og køre flere Docker containere som et enkelt projekt, hvilket forenkler implementering af applikationer og sikrer sammenhæng mellem udviklings- og produktionsmiljøer.

Nedenfor er nogle begreber og eksempler på Docker Compose:

Definer projektet ved hjælp af filen docker-compose.yml

I docker-compose.yml filen kan du definere de tjenester, der kræves til din ansøgning. For at implementere en PHP-webapplikation med en MySQL-database kan du for eksempel definere to tjenester som følger:

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  

I ovenstående kodestykke definerer vi to tjenester: web og db. Tjenesten web vil bruge PHP 7.4 image med Apache, lytte på port 80 og montere ./app biblioteket fra værten til /var/www/html biblioteket i container. Tjenesten db vil bruge MySQL 5.7 image og indstille nogle miljøvariabler, der kræves til databasen.

 

Bruger Docker Compose kommando

Når du har defineret projektet i filen docker-compose.yml, kan du bruge Docker Compose kommandoer til at administrere tjenesterne.

  • Start projektet: docker-compose up

    Denne kommando starter beholderne for de tjenester, der er defineret i docker-compose.yml filen.

  • Stop og fjern beholderne: docker-compose down

    Denne kommando stopper og fjerner alle containere relateret til projektet.

  • Liste over kørende containere: docker-compose ps

    Denne kommando viser status for containerne i projektet.

  • Se servicelogfiler: docker-compose logs

    Denne kommando viser logfilerne for tjenesterne i projektet.

 

Miljøvariabler og tilpasning

Docker Compose giver dig mulighed for at bruge miljøvariable til at tilpasse konfigurationer til forskellige miljøer, såsom udvikling og produktion. Du kan bruge miljøvariabler i docker-compose.yml filen og definere deres værdier i tilsvarende .env filer.

For eksempel, hvis du vil definere en miljøvariabel for porten af ​​tjenesten web, kan du tilføje en linje til .env filen som denne:

WEB_PORT=8080

Derefter docker-compose.yml kan du i filen bruge denne miljøvariabel som denne:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

Når du kører kommandoen docker-compose up, web lytter tjenesten på port 8080 i stedet for port 80.

 

Integrering med Docker Swam

Hvis du ønsker at implementere din applikation i et distribueret miljø med flere noder, Docker Compose kan du integrere med Docker Swarm. Dette giver dig mulighed for at administrere tjenester på tværs af flere noder i en Docker klynge.

For at bruge denne integration skal du blot tilføje indstillingerne --orchestrate eller --with-registry-auth, når du kører, docker stack deploy eller docker-compose up kommandoer i et Swarm miljø.

 

Docker Compose er et nyttigt værktøj til nem og effektiv applikationsudvikling, test og implementering. Det minimerer forskellene mellem udviklings- og produktionsmiljøer, sikrer ensartethed i softwareudviklingsprocessen og forbedrer udviklingsteams produktivitet.