Docker Networking & Probleme (no route to host!)

(0 comments)

Docker Networking ist für die meisten relativ mystisch. De facto legt Docker ein eigenes SDN (Software Defined Network) für jeden Stack und jeden Container an.

Das bedeutet auch, dass man, sollte man mit docker-compose arbeiten, für ein übergreifendes Networking zwischen den Containern ein eigense Netzwerk definieren muss / sollte.

Ich lege in solchen Fällen meistens ein Netzwerk "internalnet" an. Dies wird bei Restart des Hosts wieder angelegt:

docker network create internalnet

Anschließend baue ich einen docker-compose Stack mit HaProxy, Nginx oder apache als Reverse Proxy. Damit braucht keiner der Container direkt in das Internet exposed sein.

Nun hat das ganze aber ein paar kleine Probleme, die nicht in der oben genannten Konfiguration, sondern am firewalld liegen.

Hier der Effekt:

Man kann vom Container aus den Host auf dem der Container läuft zwar pingen, bekommt aber keinen Connect. Das verhindert die Firewall.

Sollte der Rechner im Internet stehen und die firewalld Zone "public" verwendet werden, hier die Config Änderung:

In der XML Datei /etc/firewalld/zones/public.xml folgendes in den <zone></zone> Bereich einfügen:

 <rule family="ipv4">
<source address="172.16.0.0/12"/>
<accept/>
</rule>

Anschliessend mit systemctl restart firewalld die Firewall neu starten. Fertig!

Der Vorteil dieser Lösung:

Man muss in der Konfiguration der Container nicht mehr unbedingt die internen IP Names der Container Struktur eintragen, sondern kann auch über die externen Gateways des Hosts gehen.

Aktuelle Bewertung: 5

Kommentare

Momentan gibt es keine Kommentare

Neuer Kommentar

benötigt

benötigt (nicht veröffentlicht)

optional

benötigt

Letzte Beiträge

Kategorien

Autoren

Archiv

2023
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005

Feeds

RSS / Atom