Sobes.tech
Middle

Ako sa realizuje rozdeľovanie zdrojov v Docker?

sobes.tech AI

Odpoveď od AI

V Dockeru sa rozdelením zdrojov medzi kontajnery sa zaobstaráva pomocou obmedzení a kvót na využívanie CPU, pamäte, disku a siete. To umožňuje kontrolovať, koľko zdrojov môže každý kontajner použiť, aby sa predišlo konfliktom a preťaženiu.

Hlavné mechanizmy:

  • CPU: je možné nastaviť počet CPU alebo podiel času procesora pomocou vlajok --cpus, --cpu-shares, --cpu-quota.
  • Pamäť: obmedzenie pamäte pomocou --memory a --memory-swap.
  • IO obmedzenie: obmedzenie rýchlosti čítania/zápisu na disk pomocou --device-read-bps, --device-write-bps.
  • Sieť: obmedzenie šírky pásma siete pomocou pluginov alebo nastavení cgroups.

Príklad spustenia kontajnera s obmedzeniami zdrojov:

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

Tu dostane kontajner maximálne 1.5 CPU a 512 MB RAM.

Docker využíva schopnosti jadra Linux (cgroups) na implementáciu týchto obmedzení, čo zabezpečuje efektívne a izolované rozdelenie zdrojov medzi kontajnermi.