Sobes.tech
Junior

Wat is Docker Compose en hoe wordt het gebruikt?

sobes.tech AI

Antwoord van AI

Docker Compose is een hulpmiddel voor het definiëren en uitvoeren van multi-container Docker-toepassingen. Het stelt je in staat om de services van de toepassing, hun afhankelijkheden en configuratie te beschrijven in één bestand (meestal docker-compose.yml). Vervolgens kunnen alle gedefinieerde services met één commando worden gestart.

Gebruik van Docker Compose:

  1. Definitie van services: In het bestand docker-compose.yml worden de verschillende componenten van de toepassing beschreven als services (bijvoorbeeld webserver, database, backend API). Voor elke service worden Docker-image, poorten, volumes, omgevingsvariabelen en afhankelijkheden gespecificeerd.

    # voorbeeld van een docker-compose.yml bestand
    version: '3.8'
    services:
      webapp:
        image: my-webapp
        ports:
          - "80:80"
        volumes:
          - .:/app
      database:
        image: postgres:13
        environment:
          POSTGRES_USER: user
          POSTGRES_PASSWORD: password
    
  2. Starten van de toepassing: Het commando docker-compose up bouwt, maakt en start alle services beschreven in het bestand docker-compose.yml.

    # alle services in de achtergrond starten
    docker-compose up -d
    
  3. Stoppen van de toepassing: Het commando docker-compose down stopt en verwijdert de containers, netwerken en volumes die door docker-compose up zijn gemaakt.

    # services stoppen en verwijderen
    docker-compose down
    

Belangrijkste voordelen:

  • Vereenvoudiging van de configuratie: De volledige configuratie van de multi-container toepassing is geconcentreerd in één bestand.
  • Herhaalbaarheid: Het is gemakkelijk om de toepassing te configureren en te starten in een identieke omgeving op verschillende machines.
  • Levenscyclusbeheer: Eenvoudige commando’s om alle services te starten, stoppen en opnieuw te starten.
  • Testen: Het is handig om snel testomgevingen op te zetten met afhankelijke services (databases, berichtenwachtrijen, enz.).

In QA wordt Docker Compose vaak gebruikt om snel testomgevingen uit te rollen, complexe infrastructuren te simuleren en voorspelbaarheid van de testomgeving te waarborgen.