#Debian

#Podman

Rootless Podman Container starten langsam obwohl OverlayFS installiert ist

Mit Podman ist es sehr einfach als Non-Root User Container zu starten. Unter Debian Bookworm funktioniert es sofort wenn Podman installiert ist, es ist erst mal keine zusätzliche Konfiguration erforderlich.

Auf einer Test Maschine mit Bookworm ist mir aufgefallen, dass Container, die als normaler User gestartet werden, immer eine kleine Verzögerung haben und währenddessen viel auf die Platte geschrieben wird. Je größer das verwendete Image ist, desto größer wird auch diese Startverzögerung.

Vergleich Root Non-Root Container starten

marcel@wega:~$ podman pull debian
Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob bbeef03cda1f done  
Copying config 5c8936e57a done  
Writing manifest to image destination
Storing signatures
5c8936e57a38f76abcac867a4d2d4faf8bb8254df0b016f2456c46df2bbd9114
marcel@wega:~$ time podman run debian ls /root

real	0m4,613s
user	0m0,292s
sys	0m1,435s

Beim Root User tritt diese Verzögerung nicht auf.

root@wega:~# podman pull debian
Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob bbeef03cda1f done  
Copying config 5c8936e57a done  
Writing manifest to image destination
Storing signatures
5c8936e57a38f76abcac867a4d2d4faf8bb8254df0b016f2456c46df2bbd9114
root@wega:~# time podman run debian ls /root

real	0m0,737s
user	0m0,152s
sys	0m0,099s

User Konfiguration für die Verwendung von OverlyFS

Die Ursache für dieses Verhalten scheint zu sein, dass OverlayFS installiert ist aber nur beim Root User auch von Podman verwendet wird. Um die Verwendung von OverlayFS für Non-Root User zu aktivieren, musste ich folgende Konfigurationsdatei im ${HOME} des Users anlegen:

 marcel@wega:~$ cat .config/containers/storage.conf 
[storage]
  driver = "overlay"

Um die Konfiguration zu aktivieren muss ein Podman System Reset durchgeführt werden.

marcel@wega:~$ podman system reset
WARNING! This will remove:
        - all containers
        - all pods
        - all images
        - all networks
        - all build cache
        - all machines
        - all volumes
Are you sure you want to continue? [y/N] y
A storage.conf file exists at /data/home/marcel/.config/containers/storage.conf
You should remove this file if you did not modify the configuration.

Danach starten die Container auch als Non-Root ohne Verzögerung.

marcel@wega:~$ podman pull debian
Resolved "debian" as an alias (/etc/containers/registries.conf.d/shortnames.conf)
Trying to pull docker.io/library/debian:latest...
Getting image source signatures
Copying blob bbeef03cda1f done  
Copying config 5c8936e57a done  
Writing manifest to image destination
Storing signatures
5c8936e57a38f76abcac867a4d2d4faf8bb8254df0b016f2456c46df2bbd9114
marcel@wega:~$ time podman run debian ls /root

real	0m0,466s
user	0m0,105s
sys	0m0,087s

Ob dies bei älteren Debian Versionen oder anderen Distributionen auch so ist habe ich nicht getestet.