Docker/Userns-remap
Erscheinungsbild
Docker/Userns-remap - Beschreibung
Beschreibung
Isolation laufender Prozesse
- Systemressourcen beschränken
- ohne dass Prozesse die wahrnehmen
- Rechteausweitung verhindern
Anwendungen von Containern mit nicht privilegierten Benutzern ausführen
- Root-Benutzer innerhalb des Containers
Können einem Benutzer mit weniger Privilegien auf dem Docker-Host zugeordnet werden
- Bereich von UIDs
Dem Benutzer wird ein Bereich von UIDs zugewiesen
- die innerhalb des Namespace wie normale UIDs von 0 bis 65536 funktionieren
- aber keine Privilegien auf dem Host-Rechner selbst haben.
Vorbereitung
Nach dem Aktivieren von userns-remap erstellt Docker einen Unterordner wie folgt:
/var/lib/docker/<uid>.<gid>/
- Neue Entitäten (Bilder, Container, Volumes, Overlay-Ebenen) werden nun dort gespeichert.
- Kataloge mit alten Entitäten werden nicht mehr verwendet.
- docker ps, docker images, docker volume ls funktionieren nur mit dem aktuellen namepace
- Der Eigentümer der Dateien in overlay2 und volumes ist nun nicht mehr root, sondern der remapped-Benutzer
Für neue Installationen
Images und Container lassen sich einfacher und schneller neu laden als migrieren.
- Bei aktiviertem userns-remap
-
- --pid=host und --network=host können nicht verwendet werden.
- Einige externe Volume-/Speichertreiber verstehen möglicherweise remap nicht und funktionieren nicht mehr.
- --privileged ohne --userns=host funktioniert nicht mehr wie zuvor, einige Funktionen sind eingeschränkt.
- Es ist besser, userns-remap bei einer sauberen Docker-Installation zu aktivieren: Alte Image-Layer und Container werden ausgeblendet, da Docker einen separaten Ordner für den neuen Namespace in /var/lib/docker/ erstellt.
Migration zu neuen Namespaces
Alle erforderlichen Daten werden in den Ordner /var/lib/docker/<uid.guid> verschoben
Bereinigung
Nach der Migration nicht mehr benötigte Dateien löschen
systemctl stop docker
cd /var/lib/docker
rm -rf containers image network plugins swarm tmp trust volumes
Installation
userns-remap aktivieren
- /etc/docker/daemon.js
{
"userns-remap": "default"
}
Oder Sie können den Benutzer manuell eingeben:
{
"userns-remap": "testuser"
}
Sie können den Namen, die UID oder user:group angeben
Dienst neu starten
Nach dem Speichern der Datei den Dienst neu starten:
sudo systemctl restart docker
Überprüfung
docker info | grep -i userns
Userns mode: private
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks