robg336699 schrieb:
Der Container läuft im Bridge Netzwerk
Das ist doch schonmal was. Das heißt dein Docker-Container hat eine eigene private IP.
Vielleicht reicht das erstmal
|
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8081
|
Bei diesen Regeln müsstest du einfach noch weiter einschränken. Ich würde vorschlagen du nimmst einfach deine öffentliche IP mit als Kriterium:
-A PREROUTING -p tcp -m tcp -i eth0 -d 138.201.250.222 --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -p tcp -m tcp -i eth0 -d 138.201.250.222 --dport 443 -j REDIRECT --to-ports 8081
Damit sind nur Pakete betroffen, die an die öffentliche IP deines Servers gesendet werden.
Ich persönlich würde aber gar keine Portumleitung per iptables machen, sondern einfach auf Port 80 und 443 einen Apache oder Nginx lauschen lassen, der Proxy für die anderen Ports spielt:
<VirtualHost *:80>
ServerName <hostname-deiner-applikation>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Auf diese Art und Weise kannst du dann auch Sachen, die im Docker-Container laufen, von außen erreichbar machen.