Zum Inhalt springen

Docker/Userns-remap: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 115: Zeile 115:




= TMP =  
= TMP =
== userns-remap ==
 
* Wenn Docker mit aktiviertem userns-remap betrieben wird, muss der Eigentümer der OpenProject-Volume-Verzeichnisse manuell gesetzt werden.
* Andernfalls starten die OpenProject-Dienste nicht.
 
; Ermittlung des UID/GID-Bereichs des dockremap-Benutzers
 
<syntaxhighlight lang="bash" highlight="1" line>
grep dockremap /etc/subuid /etc/subgid
</syntaxhighlight>
 
Ausgabe:
 
<syntaxhighlight lang="bash" highlight="" line>
dockremap:241074:65536
</syntaxhighlight>
 
* OpenProject verwendet innerhalb des Containers die UID 1000.
* Zur Berechnung der Ziel-UID muss lediglich 1000 zur dockremap-UID addiert werden.
* Daraus ergibt sich eine Ziel-UID von '''242074'''.
 
<syntaxhighlight lang="bash" highlight="1" copy line>
sudo chown -R 242074:242074 /var/lib/openproject
</syntaxhighlight>
 
* Die Rechte sind nun korrekt festgelegt.

Version vom 11. Januar 2026, 14:52 Uhr

Docker/Userns-remap - Beschreibung

Beschreibung

Linux-Namespaces

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



TMP