Jump to content

Alle Docker lieber von bridge auf custom:br0 umstellen?


derjp
Go to solution Solved by alturismo,

Recommended Posts

Moin moin,

 

Wieso stelle ich diese Frage?

Nun ich habe vor ca 3 Wochenen angefangen mein ersten unraid Server aufzusetzen. Ich habe nun schon einige Docker installiert und diese habe ich bis jetzt auch immer dazu bekommen miteinander zu arbeiten.

 

image.png.0a8b0ae7e82cdf5866a4afed71f08137.png

 

Nun ist heute AdGuard hinzu gekommen. Und nun stelle ich mir die Frage, ob ich von Anfang an etwas wichtiges falsch gemacht habe.

Ich habe jeden Docker mit dem network type bridge installiert. hat ja bis jetzt auch immer alles gut geklappt. Bei Adguard war es ja aber wichtig diesen mit custom:br0 zu installieren, damit dieser eine eigene IP bekommt, damit ich diese dann in die Fritzbox eintragen kann als DNS Server.

 

Nun wollte ich über Nginx die einen proxyhost erstellen. adguard.sub.domain.de -> 192.168.178.2 

nginx soll ja nun wenn die url aufgerufen wird, auf die ip weiterleiten, wie bei anderen dockern auch ( die alle die ip von unraid haben wegen bridge)

 

Nun gebe ich diese URL ein, es kommt die Login Abfrage von Authelia und danach bekomme ich: 502 bad gateway.

 

Nun frage ich mich, liegt es wirklich daran, dass adguard br0 ist und nginx in bridge läuft? Die sollen ja eigentlich nicht großartig miteinander kommunizieren, sondern nginx soll ja dann nur an die ip weiterleiten.

 

Oder liegt es wirklich an den unterschiedlichen network typen? Oder ich habe vielleicht etwas nicht verstanden? Ich habe den halben Tag gesucht und gegooglet, aber ich bin bis jetzt nicht schlauer geworden.

 

Was mich dann auch noch zu meiner Frage aus dem Threadtitel bringt.

 

Wäre es besser gewesen, wenn ich von Anfang an jeden Docker mit custom:br0 installiert hätte und jeder seine eigene IP bekommt? Oder habe ich dadurch andere Nachteile? Oder ist es nicht nötig und nur bei einzelnen Dockern, wenn diese mit keinen anderen Dockern kommunizieren müssen?

 

Sollte ich nun alle editieren und auf br0 umstellen? Würdet ihr mir empfehlen dies erstmal zu berichtigen, bevor ich nun weitere Docker installiere wie nextlcoud, paperless, luckybackup etc?

 

Ich bin grade etwas überfragt wie ich nun weitermache und vielleicht erstmal "Schadenbegrenzung" betreibe. Lerne durch Schmerz vermute ich mal.

 

Link to comment
6 hours ago, derjp said:

Oder liegt es wirklich an den unterschiedlichen network typen? Oder ich habe vielleicht etwas nicht verstanden?

Nope, Mix Betrieb geht, sicherlich irgendwo etwas nicht sauber konfiguriert ...

 

angefangen von ipvlan Thematik bis zu docker host access nicht aktiviert ...

 

oder das "umdenken" nicht beachtet, bei custom gibt es kein port mapping mehr und man nutzt immer die nativen Ports der App auf dem Docker ... usw usw ... kann jetzt vieles sein, wird nur schwer mit den bisherigen Infos ne vernünftige Aussage zu treffen.

 

6 hours ago, derjp said:

Bei Adguard war es ja aber wichtig diesen mit custom:br0 zu installieren, damit dieser eine eigene IP bekommt, damit ich diese dann in die Fritzbox eintragen kann als DNS Server.

das ist so auch nicht richtig, auch adguard läuft im bridge mode als DNS wenn man will ... es wird nur eventuell schwieriger in der bridge mit manchen Diensten, speziell mit standardisierten Ports, Beispiel DNS, alles was als DNS Server fungiert braucht den Port 53, wenn alles in der bridge läuft hast du nur 1 x die Option (inkl. dem Host wo die bridge bereitstellt). Gleiches gilt für DNLA (Port 1900), usw usw ...

 

6 hours ago, derjp said:

Wäre es besser gewesen, wenn ich von Anfang an jeden Docker mit custom:br0 installiert hätte und jeder seine eigene IP bekommt? Oder habe ich dadurch andere Nachteile? Oder ist es nicht nötig und nur bei einzelnen Dockern, wenn diese mit keinen anderen Dockern kommunizieren müssen?

 

Sollte ich nun alle editieren und auf br0 umstellen? Würdet ihr mir empfehlen dies erstmal zu berichtigen, bevor ich nun weitere Docker installiere wie nextlcoud, paperless, luckybackup etc?

 

Ich bin grade etwas überfragt wie ich nun weitermache und vielleicht erstmal "Schadenbegrenzung" betreibe. Lerne durch Schmerz vermute ich mal.

 

Nein, besser wäre es du würdest dich dazu einlesen, verstehen was, wie wo, ... und dann für dich entscheiden was du wie anstellen willst.

 

es hat alles seine Vor / Nachteile, ich persönlich nutze alle Docker (30+) mit custom ... mit eigener fixen IP ... aber nur weil mir das mapping "auf die Nerven" geht ;) und ich es "cleaner" finde wenn alles auf seiner IP läuft ... und nicht überlegen muss welchen Port ich wie, wo, ... mappe um keine Konflikte zu bekommen.

 

Nachteil, naja ... ich belege für jeden Docker ne eigene IP im Netz ;) und die bridge ist "geschlossener" ... Nameserving funktioniert hier ganz gut, kann aber sein dass der ein oder andere Docker im Router konfiguriert werden muss (Name eintragen), usw usw ...

 

Beispiel

 

image.thumb.png.62f4350b0f550c6b036dd31d6c48e838.png

Link to comment
3 hours ago, alturismo said:

Nope, Mix Betrieb geht, sicherlich irgendwo etwas nicht sauber konfiguriert ...

 

angefangen von ipvlan Thematik bis zu docker host access nicht aktiviert ...

 

oder das "umdenken" nicht beachtet, bei custom gibt es kein port mapping mehr und man nutzt immer die nativen Ports der App auf dem Docker ... usw usw ... kann jetzt vieles sein, wird nur schwer mit den bisherigen Infos ne vernünftige Aussage zu treffen.

 

das ist so auch nicht richtig, auch adguard läuft im bridge mode als DNS wenn man will ... es wird nur eventuell schwieriger in der bridge mit manchen Diensten, speziell mit standardisierten Ports, Beispiel DNS, alles was als DNS Server fungiert braucht den Port 53, wenn alles in der bridge läuft hast du nur 1 x die Option (inkl. dem Host wo die bridge bereitstellt). Gleiches gilt für DNLA (Port 1900), usw usw ...

 

Nein, besser wäre es du würdest dich dazu einlesen, verstehen was, wie wo, ... und dann für dich entscheiden was du wie anstellen willst.

 

es hat alles seine Vor / Nachteile, ich persönlich nutze alle Docker (30+) mit custom ... mit eigener fixen IP ... aber nur weil mir das mapping "auf die Nerven" geht ;) und ich es "cleaner" finde wenn alles auf seiner IP läuft ... und nicht überlegen muss welchen Port ich wie, wo, ... mappe um keine Konflikte zu bekommen.

 

Nachteil, naja ... ich belege für jeden Docker ne eigene IP im Netz ;) und die bridge ist "geschlossener" ... Nameserving funktioniert hier ganz gut, kann aber sein dass der ein oder andere Docker im Router konfiguriert werden muss (Name eintragen), usw usw ...

 

Beispiel

 

image.thumb.png.62f4350b0f550c6b036dd31d6c48e838.png

 

Danke schonmal für deine ausführliche Antwort.

Also mit mapping meinst du, dass du gucken musst, welchen Port du nutzt richtig? Naja, aber das machst du ja auch nur einmal bei der Installation. Ob du da nun ne IP einträgst oder einmal guckst welchen Port du nimmst, aber ja das muss jeder selber wissen, das ist richtig. Und ich müsste ja dann wie du sagst, auch noch einiges in der Fritzbox konfigurieren, wenn alles auf eigener IP läuft oder? Dann wäre das ja mehr arbeit als einmal zu schauen, welcher Port schon belegt ist, oder ich habe dich etwas falsch verstanden.

 

Wenn ich nun adguard testweise auf bridge stellen will bekomme ich die Meldung:

docker: Error response from daemon: driver failed programming external connectivity on endpoint AdGuard-Home (e11807abfdd6c62da1bd8a76af1217a1b5b1961acf4bfedc3f7b780ca47f0812): Error starting userland proxy: listen tcp4 0.0.0.0:53: bind: address already in use.

 

aber der port ist ja nur von adguard in use soweit ich das sehe.

 

Und bei nginx habe ich halt eine subdomain erstellt welche dann auf die ip von adguard weiterleiten soll. ich muss bei nginx ja einen port angeben, da habe ich es mit 80, 53 und 3000 probiert. immer der gleiche Fehler Bad gateway, aber wenn ich die ip so im browser aufrufe funktioniert es ja, das verstehe ich halt nicht, weil nginx soll doch in dem fall eigentlich nur weiterleiten oder nicht?

 

Ja ich muss mich da sicherlich noch etwas einlesen, ich hatte auch schon hier im Forum geschaut, aber noch nicht das passende geufnden, hast du vielleicht ein Tipp für mich, wo ich mich darüber Anfängerfreundlich einlesen kann?

 

Bin mir halt jetzt total unsicher, was die bessere Konfiguration wäre. bridge oder alles br0 um es später dann doch "einfacher" zu haben, aus welchen Gründen auch immer.

Link to comment
3 hours ago, derjp said:

Bin mir halt jetzt total unsicher, was die bessere Konfiguration wäre. bridge oder alles br0 um es später dann doch "einfacher" zu haben, aus welchen Gründen auch immer.

br0 (eigentlich mittlerweile eth0) hast du halt keine Port Konflikte ... da jeder Docker im eigenen Stack läuft, fertig ...

 

bei bridge musst du halt schauen und standardisierte Dienste ... wie DNS ... siehe oben ;) oder deine Fehlermeldung ...

 

3 hours ago, derjp said:

listen tcp4 0.0.0.0:53: bind: address already in use

sprich, in use ist in use ... musst halt suchen ...

 

3 hours ago, derjp said:

Und bei nginx habe ich halt eine subdomain erstellt welche dann auf die ip von adguard weiterleiten soll. ich muss bei nginx ja einen port angeben, da habe ich es mit 80, 53 und 3000 probiert. immer der gleiche Fehler Bad gateway, aber wenn ich die ip so im browser aufrufe funktioniert es ja, das verstehe ich halt nicht, weil nginx soll doch in dem fall eigentlich nur weiterleiten oder nicht?

und ist der host access aktiviert ?

 

image.thumb.png.8cd3501e33b1c9f817d41356809b82cd.png

 

ohne den kann die bridge (auf dem Host) NICHT mit dem custom "sprechen" ...

 

ansonsten ... einfach nachlesen und für dich entscheiden ;)

Link to comment
17 minutes ago, alturismo said:

br0 (eigentlich mittlerweile eth0) hast du halt keine Port Konflikte ... da jeder Docker im eigenen Stack läuft, fertig ...

 

bei bridge musst du halt schauen und standardisierte Dienste ... wie DNS ... siehe oben ;) oder deine Fehlermeldung ...

 

sprich, in use ist in use ... musst halt suchen ...

 

und ist der host access aktiviert ?

 

image.thumb.png.8cd3501e33b1c9f817d41356809b82cd.png

 

ohne den kann die bridge (auf dem Host) NICHT mit dem custom "sprechen" ...

 

ansonsten ... einfach nachlesen und für dich entscheiden ;)

 

Ja, das es dann keine Port Konflikte gibt weil jeder Docker ne eigene IP hat ist klar, das habe ich verstanden.

 

Host access habe ich nun aktiviert und nun funktioniert die weiterleitung auch. ich verstehe zwar noch nicht warum, da laut meinem Verständnis ja nginx nur etwas auf einer domain reinkommt auf eine bestimmte ip weiterleiten soll und ich nicht weiß, warum dafür br0 und bridge miteinander kommunizieren müssen aber okay :P

 

Naja bis jetzt läuft ja alles wie es soll denke ich. Mal schauen wie das ist, wenn ich nun nextcloud oder so installiere und ob es auch eine eigene IP haben sollte und ob es dann wieder Probleme gibt, weil nexcloud noch den DB wie mariadb benötigt die aktuell ja auch noch in bridge läuft, aber das werde ich ja dann sehen.

 

Ja nachlesen muss ich das auf jeden Fall, aber halt mich für blöd, ich habe schon einige Zeit gesucht, aber noch nicht das passende zum nachlesen gefunden, wo mir die Vor und Nachteile oder passende Anwendungsbeispiele aufgezeigt wurden, oder ich stell mich bei der Suche einfach zu blöd an.

 

Aber wenn ich das richtig verstanden habe, da ich ja nun host access aktiviert habe, kann ich ja die Sachen die laufen auf bridge lassen und bei zukünftigen Dockern die br0 benötigen, diese in br0 konfigurieren und sie können ja dann auch untereinander kommunizieren. Dann sollte es ja kein Problem sein, richtig?

Link to comment
On 2/6/2024 at 12:07 PM, derjp said:

und ich nicht weiß, warum dafür br0 und bridge miteinander kommunizieren müssen aber okay :P

naja, dein NPM läuft im bridge mode (Host Netzwerk Stack) und adguard im custom, wenn die NICHT miteinander "reden" sollen (host access disabled) dann kann das nicht gehen, denke auch dran dass reverse proxying kein redirect ist sondern der HTTP Traffic komplett durch den RP läuft, das noch dazu ...

 

On 2/6/2024 at 12:07 PM, derjp said:

Aber wenn ich das richtig verstanden habe, da ich ja nun host access aktiviert habe, kann ich ja die Sachen die laufen auf bridge lassen und bei zukünftigen Dockern die br0 benötigen, diese in br0 konfigurieren und sie können ja dann auch untereinander kommunizieren. Dann sollte es ja kein Problem sein, richtig?

exakt, mix Betrieb usw ist alles kein Thema ... immer nur daran denken

 

im custom br/eth mode, ist port mapping obsolet (egal was eingetragen ist) ... Ports sind dann immer auf der IP die nativen Ports.

 

mal ein simples Beispiel (swag, npm, was auch immer) zur Veranschaulichung

 

Docker welche im custom mit eigener IP laufen und port mappings eingetragen sind, da sind diese dann obsolet

 

image.thumb.png.1fd2f19a58f3fa080c81bd809dafc9e1.png

 

da dieser Docker (swag) auf der eigenen IP läuft, läuft der Zugriff auf 192.168.1.83:80 oder :443 und NICHT auf :180 oder :1443, obwohl da zwar ein Mapping eingetragen ist ... aber durch den eigenen stack greift das nicht ...

 

würde ich den den Docker jetzt umstellen auf bridge, dann wäre das mapping aktiv und ich würde den Docker unter (unraids) host_ip:180 oder :1443 ansprechen müssen.

 

nur dass dies nicht zu Missverständnissen führt ;)

 

innerhalb der bridge spreche ich die aber wieder direkt auf dem nativen Port an, Bsp. 172.....:80 ;) andere Baustelle ;)

 

eins noch als Hinweis, bei unclean shutdowns ... leider immer noch offen und passiert ab und an

 

 

  • Like 1
Link to comment
2 hours ago, alturismo said:

naja, dein NPM läuft im bridge mode (Host Netzwerk Stack) und adguard im custom, wenn die NICHT miteinander "reden" sollen (host access disabled) dann kann das nicht gehen, denke auch dran dass reverse proxying kein redirect ist sondern der HTTP Traffic komplett durch den RP läuft, das noch dazu ...

 

exakt, mix Betrieb usw ist alles kein Thema ... immer nur daran denken

 

im custom br/eth mode, ist port mapping obsolet (egal was eingetragen ist) ... Ports sind dann immer auf der IP die nativen Ports.

 

mal ein simples Beispiel (swag, npm, was auch immer) zur Veranschaulichung

 

Docker welche im custom mit eigener IP laufen und port mappings eingetragen sind, da sind diese dann obsolet

 

image.thumb.png.1fd2f19a58f3fa080c81bd809dafc9e1.png

 

da dieser Docker (swag) auf der eigenen IP läuft, läuft der Zugriff auf 192.168.1.83:80 oder :443 und NICHT auf :180 oder :1443, obwohl da zwar ein Mapping eingetragen ist ... aber durch den eigenen stack greift das nicht ...

 

würde ich den den Docker jetzt umstellen auf bridge, dann wäre das mapping aktiv und ich würde den Docker unter (unraids) host_ip:180 oder :1443 ansprechen müssen.

 

nur dass dies nicht zu Missverständnissen führt ;)

 

innerhalb der bridge spreche ich die aber wieder direkt auf dem nativen Port an, Bsp. 172.....:80 ;) andere Baustelle ;)

 

eins noch als Hinweis, bei unclean shutdowns ... leider immer noch offen und passiert ab und an

 

 

 

Ja alles klar, das ist mir bewusst, danke für die Infos.

 

Also unclean shutdown, also wenn der Server irgendwie abschmiert, oder auf einmal Strom weg ist, er also nicht normal heruntergefahren wird und dann wieder startet, dann muss man ab und zu diese funktion deaktivieren und wieder aktivieren, da es manchmal sein kann, dass sie nicht funktioniert.

Wenn der Server aber ganz normal heruntergefahren wird und wieder hochgefahren, dann sollte es damit keine Probleme geben, habe ich so richtig verstanden?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...