Linux OSBN/Ubuntuusers Planet XING / LinkedIn

Kurztipp: Rootless Podman + docker-compose unter Fedora

Seit 2018 gibt es mit Podman eine sehr elegante und schlanke Container-Runtime als Alternative zu Docker. Podman bietet eine geringere Angriffsfläche durch wegfallende Hintergrunddienste und ist auch auf Red Hat-artigen Betriebssystemen oftmals vorinstalliert. Mit einigen Kniffen lassen sich bestehende docker-compose-Konfigurationen auch weiterhin verwenden.

Zunächst müssen Podman inklusive Docker-Kompatibilität und docker-compose – falls noch nicht geschehen – installiert werden:

# dnf install podman podman-docker docker-compose

Für priviligierte Container muss das systemweite Socket aktiviert und unter einem weiteren Namen zur Verfügung gestellt werden. Podman kommt ohne Socket aus, Docker nicht – daher erwartet docker-compose ein Socket zur Kommunikation.

# ln -s /var/run/podman/podman.sock /var/run/docker.sock
# systemctl enable --now --user podman.socket

Für unprivilegierte Container muss das Socket im Benutzerkontext aktiviert werden:

$ systemctl enable --now --user podman.socket

Besonders wichtig ist die Umgebungsvariable DOCKER_HOST, die auf das Socket im Benutzerkontext zeigen muss. Es empfiehlt sich das Vorhandensein des selbigen zu überprüfen:

$ export DOCKER_HOST="unix:$XDG_RUNTIME_DIR/podman/podman.sock"
$ file $XDG_RUNTIME_DIR/podman/podman.sock
/run/user/1000/podman/podman.sock: socket
Der export-Befehl ist ein guter Kandidat für die ~/.bashrc-Datei.

Damit in einer docker-compose.yml angegebene Volumes dem Container zur Verfügung stehen, muss zwingend der SELinux-Support aktiviert werden (:z am Ende der Pfad-Angabe ergänzen):

version: "3"
services:
...

volumes:
- "./data:/data:z"

Andernfalls starten die Container, sind aber nicht in der Lage auf die Daten zuzugreifen.

Sharing is caring

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.