Sobes.tech
Middle

Hoe wordt de resourceverdeling in Docker uitgevoerd?

sobes.tech AI

Antwoord van AI

In Docker wordt de verdeling van resources tussen containers gedaan door middel van beperkingen en quota op het gebruik van CPU, geheugen, schijf en netwerk. Dit stelt je in staat om te controleren hoeveel resources elke container kan gebruiken, om conflicten en overbelasting te voorkomen.

Belangrijkste mechanismen:

  • CPU: je kunt het aantal CPU's of het aandeel van de processor tijd instellen met behulp van de vlaggen --cpus, --cpu-shares, --cpu-quota.
  • Geheugen: geheugenbeperking via --memory en --memory-swap.
  • IO-blokkering: beperking van de lees/schrijf snelheid op de schijf met --device-read-bps, --device-write-bps.
  • Netwerk: beperking van de netwerkbandbreedte via plugins of cgroups-instellingen.

Voorbeeld van het starten van een container met resourcebeperkingen:

docker run -d --name my_container --cpus="1.5" --memory="512m" nginx

Hier krijgt de container maximaal 1.5 CPU en 512 MB RAM.

Docker gebruikt de mogelijkheden van de Linux-kernel (cgroups) om deze beperkingen te implementeren, wat zorgt voor een efficiënte en geïsoleerde verdeling van resources tussen containers.