cgroups limita le risorse che un processo o un insieme di processi può utilizzare queste risorse potrebbero essere CPU, memoria, I/O di rete o accesso al filesystem mentre namespace restringe la visibilità del gruppo di processi al resto del sistema.
visita per ulteriori dettagli su come i Cgroup e i namespace del kernel Linux hanno reso possibili i contenitori moderni
I collegamenti corretti per queste due nozioni sono stati corretti in PR 14307:
Sotto il cofano, Docker si basa sui seguenti componenti:
I cgroup e
namespaces
capacità del kernel Linux
Con:
- cgroup :i gruppi di controllo forniscono un meccanismo per aggregare/partizionare insiemi di attività e tutti i loro futuri figli in gruppi gerarchici con un comportamento specializzato.
- spazio dei nomi :avvolge una risorsa di sistema globale in un'astrazione che fa sembrare ai processi all'interno dello spazio dei nomi che hanno la propria istanza isolata della risorsa globale.
In breve:
- Cgroups =limita quanto puoi usare;
- spazi dei nomi =limita ciò che puoi vedere (e quindi utilizzare)
Scopri di più su "Anatomy of a Container:Namespaces, cgroups &Some Filesystem Magic" di Jérôme Petazzoni.
I Cgroup implicano la misurazione e la limitazione delle risorse:
- memoria
- CPU
- blocco I/O
- rete
Gli spazi dei nomi forniscono ai processi la propria visione del sistema
Più spazi dei nomi:
- pid
- netto
- mnt
- uts
- ipc
- utente:utenti si sta diplomando da sperimentale nella finestra mobile 1.10
(è in corso la rimappatura per istanza daemon della root del contenitore a un utente senza privilegi:PR 12648:vedere il suo design)