Sobes.tech
Middle

Jak je v Dockeru realizováno rozdělení zdrojů?

sobes.tech AI

Odpověď od AI

V Dockeru je rozdělení zdrojů mezi kontejnery prováděno pomocí omezení a kvót na využití CPU, paměti, disku a sítě. To umožňuje kontrolovat, kolik zdrojů může každý kontejner využívat, aby se předešlo konfliktům a přetížení.

Hlavní mechanismy:

  • CPU: lze nastavit počet CPU nebo podíl času procesoru pomocí příznaků --cpus, --cpu-shares, --cpu-quota.
  • Paměť: omezení paměti přes --memory a --memory-swap.
  • IO omezení: omezení rychlosti čtení/zápisu na disk pomocí --device-read-bps, --device-write-bps.
  • Síť: omezení šířky pásma sítě pomocí pluginů nebo nastavení cgroups.

Příklad spuštění kontejneru s omezením zdrojů:

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

Zde dostane kontejner maximálně 1.5 CPU a 512 MB operační paměti.

Docker využívá schopnosti jádra Linuxu (cgroups) k implementaci těchto omezení, což zajišťuje efektivní a izolované rozdělení zdrojů mezi kontejnery.