Notwendige Pakete für podman
podman
slirp4netns
uidmap
podman-compose
Danach am besten Reboot weil sonst a) die subuids/subguids von uidmap und b) die netns Geschichten von slirp4netns nicht greifen und podman-compose auf die Nase fliegt mit “podman failed to mount runtime directory for rootless netns” failed.
Aber – damit können zwei Container noch nicht miteinander kommunizieren. Podman benutzt dann per default CNI als Netzwerkmethode und das überall beschriebene Paket “podman-plugins” gibts auf Debian offenbar nicht (erlebt auf bookworm), das notwendige Paket mit dem plugin “dnsname” (landet dann auf /usr/lib/cni/) heißt
golang-github-containernetworking-plugin-dnsname
Das installiert eben das dnsname CNI plugin und auch dnsmasq-base damit Inter-Container DNS Lookups darüber geführt werden können.
Das alleine hilft aber noch nicht weil das Default Netzwerk “podman” (podman network ls) hat DNS lookups nicht enabled (podman network inspect podman – Property “dns_enabled” steht auf false).
Erzeugt man aber nach der Installation vom DNSNAME plugin ein Netzwerk hat dieses dns_enabled=true, entweder auf der commandline
podman create network whatevernet
podman run whatever:latest --net whatevernet
oder im compose file als network:
networks:
whatevernet:
services:
whatever:
image: whatever:latest
networks:
- whatevernet
UPDATE
Keine Ahnung warum mein podman mit CNI als Netzwerkbackend installiert wurde aber seit 4.0 sollte eigentlich netavark Default sein – welches das alles out of the box kann. Umstellung:
- podman system reset
(Reboot um Reste zu entfernen)
- sudo cp /usr/share/containers.conf /etc/containers/
- unter [network] Eintrag network_backend entkommentieren und auf “netavark” setzen
- sudo apt install netavark
- sudo apt install aavark
- podman info | grep networkBackend
(sollte netavark sein)