Neue Container-Images erzeugen Sie beispielsweise mithilfe von docker build und einem Dockerfile. Das Kommando erfordert allerdings sowohl root-Rechte als auch einen aktiven Docker-Daemon. Nun könnten Sie natürlich als Workaround einfach Benutzer in die Gruppe "docker" aufnehmen, um somit einen Build-Vorgang auch für nicht privilegierte Benutzer zu ermöglichen:
ls -l /var/run/docker.sock
srw-rw----. 1 root docker 0 Aug 26 15:16 /var/run/docker.sock
usermod -G docker foobar
Wenn Sie dann noch den Socket des Docker-Daemons innerhalb eines Containers zur Verfügung stellen, klappt das Bauen neuer Images auch aus einem Container heraus. Schauen wir uns im Netz diverse Anleitungen an, wie sich neue Images in einer CI/CD-Infrastruktur direkt innerhalb von Containern erzeugen lassen, wird diese Methode sogar oftmals empfohlen. Was gerne dabei vergessen wird, ist jedoch, dass hiermit jeder Benutzer leicht root-Zugriff auf dem Host erhalten kann mit folgendem Kommando:
docker run -ti --privileged -v /:/host <image> chroot /host
In diesem Fall wäre es also besser, den Benutzern, die Zugriff auf den Docker-Daemon erhalten sollen, die hierfür notwendigen sudo-Rechte zu geben. Dies hätte auch den Vorteil, dass sämtliche Zugriffe auf den Docker-Service korrekt mitgeloggt werden und sich somit verifizieren lässt, wer wann welche Aktion ausgeführt hat.
Mittlerweile beherrscht nicht mehr nur Docker die Container-Welt, sondern es existieren auch viele andere Container-Runtimes mit ihren jeweiligen Tools. Buildah [1] ist ein solches Tool, das aus dem CRI-O/Podman/skopeo-Ökosystem stammt und, im Gegensatz zu Docker, keinen Container-Daemon für das Erzeugen von neuen Container-Prozessen oder -Images benötigt. Das Tool haben wir
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.