Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Beheer van Multi-Container Applicaties | Werken met Docker Compose
Docker Essentials

Beheer van Multi-Container Applicaties

Veeg om het menu te tonen

Bij het bouwen van moderne applicaties is het vaak nodig om meerdere services samen te laten draaien—zoals webservers, databases en caches—die met elkaar moeten communiceren en als één systeem moeten functioneren. Docker Compose vereenvoudigt dit proces door je toe te staan alle services, hun afhankelijkheden en hun onderlinge interacties te definiëren in één enkel docker-compose.yml-bestand.

Afhankelijkheden en Servicekoppelingen definiëren in docker-compose.yml

In je docker-compose.yml kan elke service afhankelijkheden opgeven en specificeren hoe deze verbinding maakt met andere services. De depends_on-sleutel maakt het mogelijk de opstartvolgorde van services te bepalen, zodat bijvoorbeeld een database actief is voordat je applicatie probeert te verbinden. Daarnaast maakt Compose automatisch een standaardnetwerk aan voor je project, waardoor services elkaar eenvoudig kunnen vinden en met elkaar kunnen communiceren via de servicenaam.

Stel dat je een webapplicatie hebt die afhankelijk is van een database. In je Compose-bestand definieer je de services als volgt:

version: "3.8"
services:
  app:
    build: .
    depends_on:
      - db
  db:
    image: postgres:15

Hierbij geldt:

  • De app-service is afhankelijk van db;
  • Compose start de databasecontainer voordat de applicatie wordt gestart;
  • Beide services kunnen elkaar binnen het Compose-netwerk benaderen via de servicenaam als hostnaam.

Strategieën voor het Schalen van Services en het Bijwerken van Configuraties

Docker Compose maakt het eenvoudig om services horizontaal te schalen. Als je applicatie meer verkeer moet verwerken, kun je het aantal containers voor een service verhogen met de --scale-vlag bij het uitvoeren van docker compose up.

Om drie instanties van je applicatieservice te draaien, gebruik je:

docker compose up --scale app=3
  • Met dit commando worden drie containers voor de app-service gestart;
  • Alle containers zijn verbonden met hetzelfde netwerk en kunnen bronnen delen, zoals een database;
  • Zorg er bij het schalen voor dat je services stateless zijn of meerdere instanties correct kunnen verwerken.

Het bijwerken van configuraties in een Compose-omgeving is eenvoudig:

  • Pas je docker-compose.yml aan—bijvoorbeeld door omgevingsvariabelen, resource-limieten of service-images te wijzigen;
  • Breng de wijzigingen aan met het volgende commando:
docker compose up -d
  • Dit commando hercreëert alleen de services waarvan de configuratie is gewijzigd, waardoor downtime wordt geminimaliseerd.

Monitoren en Problemen Oplossen bij Multi-Container Applicaties met Compose

Bij het draaien van meerdere containers zijn monitoring en probleemoplossing essentieel. Docker Compose biedt hulpmiddelen om de gezondheid en logs van je services te observeren. Je kunt de uitvoer van alle containers in realtime bekijken met:

docker compose logs -f

Dit commando streamt logs van alle services, waardoor het eenvoudiger wordt om fouten of problemen direct te signaleren. Als je je wilt richten op een specifieke service, geef dan de naam op:

docker compose logs db

Voor probleemoplossing kun je een draaiende container binnengaan met:

docker compose exec app sh

Dit commando geeft je een shell binnen de app-container, zodat je bestanden kunt inspecteren, diagnostische commando's kunt uitvoeren of omgevingsvariabelen kunt controleren. Het monitoren van resourcegebruik en de gezondheid van containers kan ook met standaard Docker-tools, zoals docker stats.

1. Welke sleutel in een docker-compose.yml-bestand zorgt ervoor dat de ene service start vóór een andere?

2. Hoe schaal je een service genaamd worker naar vijf instanties met Docker Compose?

3. Welk commando gebruik je om live logs van alle actieve services in een Compose-applicatie te bekijken?

question mark

Welke sleutel in een docker-compose.yml-bestand zorgt ervoor dat de ene service start vóór een andere?

Selecteer het correcte antwoord

question mark

Hoe schaal je een service genaamd worker naar vijf instanties met Docker Compose?

Selecteer het correcte antwoord

question mark

Welk commando gebruik je om live logs van alle actieve services in een Compose-applicatie te bekijken?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 3. Hoofdstuk 3
some-alt