Warum können Docker Container die IP 127.0.0.1 nicht erreichen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Jeder docker Container hat sein eigene isolierte Netzwerkumgebung, sofern Du das nicht anders eingerichtet hast. 127.0.0.1 liegt also im Container und daher kann die Software im Container auch nicht drauf zugreifen.

https://docs.docker.com/engine/reference/run/#network-settings

Eine Variante wäre, dass die Container den Network Stack des Hosts benutzen. Alternativ verwendest Du

--add-host host.docker.internal:host-gateway

Und greifst dann auf host.docker.internal zu um auf dein MySQL zu kommen.

Die letzte Alternative wäre alle docker Container in ein gemeinsames Netzwerk zu packen und auch MySQL in nen Container zu setzen, so dass alle untereinander kommunizieren können.

Docker-Container verwenden standardmäßig eine isolierte Netzwerkumgebung, wodurch die IP-Adresse 127.0.0.1 nicht auf den Host oder andere Container verweist.

Außerdem ist die IP-Adresse 127.0.0.1 eine sogenannte Loopback-Adresse und bezieht sich auf den lokalen Host (also den Container selbst), nicht auf den Host des Docker-Hostsystems.

PaulSchwarz123 
Fragesteller
 21.05.2023, 12:45

Gäbe es denn eine andere Möglichkeit, womit ich die Datenbank von außen nicht erreichbar machen muss?

0
Bronzko  21.05.2023, 12:51
@PaulSchwarz123

Kannst du, in dem du den entsprechenden Container mit der Option --network startest und das Netzwerk auf bridge oder ein benutzerdefiniertes Netzwerk setzt. Dadurch wird der Container nur innerhalb des Docker-Netzwerks erreichbar, externe Anfragen werden dadurch blockiert.

0