Namespace

Een namespace isoleert een systeemresource zodat processen in verschillende namespaces een eigen, gescheiden weergave van die resource hebben. Namespaces zijn de basis van Linux-containers.

Soorten namespaces

NamespaceIsoleert
PIDProcessen — PID 1 in een container is niet PID 1 op de host
NetworkNetwerkinterfaces, routing, firewallregels
MountBestandssysteemkoppelingen
UTSHostnaam en domeinnaam
UserGebruikers- en groep-IDs
IPCGedeeld geheugen en berichtenwachtrijen
CgroupZichtbaarheid van cgroup-hiërarchie

Namespaces bekijken

lsns                         # alle namespaces tonen
lsns -t net                  # alleen netwerk-namespaces
ls -la /proc/1/ns/           # namespaces van PID 1

Nieuwe namespace aanmaken

unshare --net --pid --fork bash   # nieuwe netwerk- en PID-namespace
ip link                           # ziet alleen lo — volledig geïsoleerd

Relatie met containers

Een container is een combinatie van namespaces (isolatie) + cgroups (resourcelimieten). Docker en podman maken bij elke container een set nieuwe namespaces aan.

Zie ook

linuxprocessencontainers