Portweiterleitung: Nach jedem Neustart des Container ein neuer Port?

  • Aktuell nutze ich Version 3.0.1.376, Bin aber natürlich nicht sicher, ob das Phänomen darauf begrenzt ist und sogar vielleicht durchaus normal ist.


    Ich habe mir diverse Images aus dem Docker-Hub geladen. Beispielsweise new-easyepg und handbrake. Diese werden automatisch mit Netzwerkmodus Standard (NAT), Netzwerk bridge eingerichtet. Jetzt habe ich festgestellt, dass die Portweiterleitung aber nach jedem Neustart des jeweiligen Containers weiterzählt. Fällt mir jetzt schwer zu glauben, dass das muss so sein.


    Weiter zeigt sich, dass ich beispielsweise von meinem Notebook nur über die IP des NAS mit entsprechendem Port auf den Container komme - also aktuell beispielsweise http://192.168.178.34:32770, am Iphone hingegen nur mit der Docker-IP, also z.B. 10.0.3.3:5800. Würde als Dummie ja vermuten, das könnte auch am Router liegen, ist aber halt auch unpraktisch.


    Ihr habt sicher wahrgenommen: Ich bin jetzt nicht so des absolute Genie, was die Container betrifft. :S . Halte es aber schon für nicht schlecht, Container für gewisse Anwendungen statt gleich eine komplette VM zu nutzen und würde daher gerne etwas mehr verstehen.

  • Das Problem, dass die Container Station teilweise selbstständig die Ports ändert ist mir auch schon auf meinem TS-464 aufgefallen. Bisher habe ich dafür noch keine Lösung gefunden.

  • Stimmt, ich erinnere mich, dass mich das bereits früher schon mal vom Nutzen von Containern weggebracht hatte.

    Jetzt wundere ich mich gerade, ob nicht sogar die IPs wechselweise vergeben werden, wenn ich mich nicht täusche - wahrscheinlich abhängig von der Startreihenfolge. Leider scheint man auch über die neue Oberfläche da wenig eingreifen zu können.

  • Am besten nicht DHCP nutzen, sonder IP und MAC fest vergeben.

    Dann sollte sich da nichts ändern.


    Tschau

    Uwe

  • Am besten richte ich die alle nochmal ein und versuche das. Ich hatte gedacht: Mach mal Standard orhne selber etwas geändert, dann wird es schon am Besten passen. Wie ich jetzt verstanden habe, lässt sich da im Nachhineiun leider auch nichts mehr ändern.

  • Habe ich keine Probleme mit, alles wurde per YAML Datei angelegt und da steht immer das Port Mapping fest mit drin.

  • Tja, dann sollte ich wohl mal sehen, wie ich aus den gezogenen Images die YAML-Dateien bekomme.

  • Die Container Station arbeitet offenbar völlig anders als die Virtualization Station, bei welcher (nur) die Ports ab 5900 aufsteigend vergeben werden in der Rehenfolge der Installation der VMs.

    pasted-from-clipboard.png


    Am besten nicht DHCP nutzen, sonder IP und MAC fest vergeben.

    Sofern Serveranwendungen darauf laufen, nutze ich ebenfalls fest zugewiesene IP-Adressen für meine "Maschinen", ebenso natürlich für Netzwerkkomponenten.

    Bei Clients reicht es ggf. völlig aus, der VM durch den DHCP-Server stets dieselbe Adresse zuweisen zu lassen.

  • Das Problem, dass die Container Station teilweise selbstständig die Ports ändert ist mir auch schon auf meinem TS-464 aufgefallen. Bisher habe ich dafür noch keine Lösung gefunden.

    Eine Lösung scheint es zu geben. Im Verzeichnis der Container /share/CACHEDEV1_DATA/VMs/Container/container-station-data/lib/docker/containers (selbstverständlich angepasst auf die individuelle Situation) gibt es in den Unterordnern zu den einzelnen Containern jeweils eine Datei hostconfig.json, welche die Informationen enthält und abgeändert werden muss. Bei mir steht da beispielsweise für einen betroffenen Container der Abschnitt

    Code
    "PortBindings":{"4000/tcp":[{"HostIp":"0.0.0.0","HostPort":""}]}

    Das habe ich abgeändert zu

    Code
    "PortBindings":{"4000/tcp":[{"HostIp":"0.0.0.0","HostPort":"32781"}]}

    Vor der Änderung muss Container Station beendet werden, es reicht nicht, den Container zu beenden. Hat zumindest bei mir gerade funktioniert


    Auf die Idee kam ich letztendlich dadurch: