Hallo Leute!
Ich habe eine frisch installierte Debian 12. Podman habe ich aus alvistack installiert und ist in der Version 5.3.0.
Prinzipiell funktioniert es... Ich kann als normaler Nutzer ein Container anlegen. Das wäre z.B. mein docker-compose.yml:
------------------------------ services: nextcloud: networks: - ncricoltz_net image: nextcloud:30.0.2-apache container_name: nc_ricoltz restart: always ports: - 172.16.95.2:8001:80 depends_on: - redis volumes: - /home/container/rl/nc_ricoltz/www:/var/www/html - /home/container/rl/nc_ricoltz/conf:/var/www/html/config - /home/container/rl/nc_ricoltz/data:/var/www/html/data - /home/container/rl/nc_ricoltz/apps:/var/www/html/apps environment: - TZ=Europe/Berlin # Timezone - MYSQL_PASSWORD=XXXXXXXXX # MySQL Data - MYSQL_DATABASE=XXXXXXXXX # MySQL Data - MYSQL_USER=XXXXXXXXX # MySQL Data - MYSQL_HOST=172.16.95.2 # MySQL Data - REDIS_HOST=redis # The redis container to use
redis: networks: - ncricoltz_net image: redis:8.0-M02-alpine container_name: redis restart: always volumes: - /home/container/rl/nc_ricoltz/redis:/data
networks: ncricoltz_net: driver: bridge ------------------------------
Wenn ich mit podman-compose up -d das Container starte, das geht und ich kann, in dem Fall, NextCloud sehen. Nun wollte ich eine App installieren (Collabora) und die versucht den Host zu erreichen. Und es klappt nicht...
Ich habe auch probiert mich in dem Container anzumelden (podman exec -it ...) und mit curl eine Seite aufzurufen, die vom Host verwaltet wird. Das geht nicht. Selbst per telnet bekomme ich die Fehlermeldung "Unable to connect to remote host: Network is unreachable".
Wenn ich allerdings versuche, eine Seite aufzurufen, die auf einem ANDEREN Host liegt, funktioniert es einwandfrei... Kurioserweise, wenn ich versuche MySQL zu erreichen, die auf einem "dummy"-Schnittstelle auf dem Host läuft, kann ich ihn erreichen. Aber alles, was auf isp0 (die Ethernetschnittstelle mit der öffentlichen IP) geht nicht...
Ideen?
Tausend Dank Luca Bertoncello (lucabert@lucabert.de)
Hallo Luca,
Am 15.11.24 um 15:51 schrieb Luca Bertoncello:
Hallo Leute!
Ich habe eine frisch installierte Debian 12. Podman habe ich aus alvistack installiert und ist in der Version 5.3.0.
Prinzipiell funktioniert es... Ich kann als normaler Nutzer ein Container anlegen. Das wäre z.B. mein docker-compose.yml:
services: nextcloud: networks: - ncricoltz_net
...
networks: ncricoltz_net: driver: bridge
,,,
Ideen?
ich hab da mehrere Ideen, was bei Docker an der Stelle alles klemmen kann, weiß aber nicht, ob das auch auf podman zutrifft.
Ist es wirklich ein Problem Container -> Host oder eher Container -> Internet?
1. DNS-Resolver passt nicht: Bei docker0 hat sich docker dazwischen geklemmt, bei weiteren selbst definierten Netzwerken wurde einfach die resolv.conf von Host reinkopiert die auf nicht erreichbare DNS-Server verweist (z.B. IPv6, obwohl im Container gar kein IPv6 konfiguriert ist) Test aus dem Container: ping Host-IP, ping externe IP
2. Forwarding eingeschaltet?
3. Firewall: hier musst du ggf. selbst entsprechende NAT-Regeln anlegen.
4. MTU: Wenn außerhalb der Containerwelt eine geringere MTU (bei mir wg. VLAN/vSwitch bei Hetzner) benötigt wird, muss das innerhalb explizit für das jeweilige Netzwerk ebenfalls konfiguriert werden. Einstellungen in der daemon.json hat docker nur für docker0 übernommen. Bis zum Host kommt man hier noch, aber nicht nach draußen.
P.S. ich hab die Nextcloud wieder ohne Container betrieben, nachdem ich festgestellt hatte, daß der Wartungsaufwand durch die Container nicht geringer ist und die Container vieles verkomplizieren. Collabora und Talk hab ich im COntainer nie richtig zum laufen bekommen.
Gruß Rico
Am 15.11.2024 um 19:56 schrieb Rico Koerner:
Hallo Rico!
ich hab da mehrere Ideen, was bei Docker an der Stelle alles klemmen kann, weiß aber nicht, ob das auch auf podman zutrifft.
Vermutlich wenig, zum Teil weil podman kein Daemon hat...
Ist es wirklich ein Problem Container -> Host oder eher Container -> Internet?
Ja! Wenn ich einen anderen Server außerhalb des Hosts (z.B. www.google.com) klappt es einwandfrei!
- DNS-Resolver passt nicht: Bei docker0 hat sich docker dazwischen
geklemmt, bei weiteren selbst definierten Netzwerken wurde einfach die resolv.conf von Host reinkopiert die auf nicht erreichbare DNS-Server verweist (z.B. IPv6, obwohl im Container gar kein IPv6 konfiguriert ist) Test aus dem Container: ping Host-IP, ping externe IP
Der Hostname wird ausgelöst, also ich kriege die richtige IP
- Forwarding eingeschaltet?
Aktuell nicht, aber selbst wenn, macht es kein Unterschied
- Firewall: hier musst du ggf. selbst entsprechende NAT-Regeln anlegen.
Das Problem ist, dass ich selbst mit tcpdump kein Paket sehe...
- MTU: Wenn außerhalb der Containerwelt eine geringere MTU (bei mir wg.
VLAN/vSwitch bei Hetzner) benötigt wird, muss das innerhalb explizit für das jeweilige Netzwerk ebenfalls konfiguriert werden. Einstellungen in der daemon.json hat docker nur für docker0 übernommen. Bis zum Host kommt man hier noch, aber nicht nach draußen.
Die MTU ist identisch im Container und Host
Andere Ideen?
Danke Luca Bertoncello (lucabert@lucabert.de)
Am 15.11.2024 um 19:56 schrieb Rico Koerner:
Moin!
Ist es wirklich ein Problem Container -> Host oder eher Container -> Internet?
Ich habe die Lösung gefunden:
https://github.com/containers/podman/issues/22237#issuecomment-2078276155
Und funktioniert einwandfrei...
Viele Grüße Luca Bertoncello (lucabert@lucabert.de)
lug-dd@mailman.schlittermann.de