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.

Current rating: 5

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

Recent Posts

Categories

Authors

Archive

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

Feeds

RSS / Atom