Herstellen einer Verbindung zu einem MySQL-Container von einem anderen Container aus
Sie haben einen Docker-Container eingerichtet, auf dem MySQL ausgeführt wird, und Port 3306 verfügbar gemacht, aber wie geht das? Greifen Sie von einem anderen Container aus auf diese Datenbank zu?
Verwenden der IP-Adresse
Zunächst haben Sie versucht, eine Verbindung über die IP-Adresse des MySQL-Containers (172.17.0.2) herzustellen. Dies funktioniert zwar, ist aber nicht ideal, da sich IP-Adressen ändern können.
Benutzerdefinierte Netzwerke
Ein besserer Ansatz besteht darin, benutzerdefinierte Netzwerke zum Verbinden von Containern zu verwenden. Sie können ein Netzwerk erstellen und sowohl die MySQL- als auch die PHP-Container daran anhängen.
docker network create my_network
Container verknüpfen
Führen Sie beide Container im selben Netzwerk aus und stellen Sie so das Netzwerk bereit Namen mithilfe des Flags --network:
docker run -d --name php_container --network my_network my_php_image docker run -d --name mysql_container --network my_network my_mysql_image
Innerhalb der Container in diesem Netzwerk können Sie Containernamen auflösen und mithilfe des Hostnamens eine Verbindung herstellen. Vom PHP-Container aus könnten Sie beispielsweise eine Verbindung zu MySQL herstellen, indem Sie Folgendes verwenden:
$mysqli = new mysqli("mysql_container", "mattia", "prova", "prova");
Fazit
Benutzerdefinierte Netzwerke bieten eine robustere und flexiblere Möglichkeit zur Verbindung Container in Docker. Die Verwendung von Containernamen als Hostnamen vereinfacht den Zugriff und macht die Abhängigkeit von IP-Adressen überflüssig.
Das obige ist der detaillierte Inhalt vonWie kann ich von einem anderen Container in Docker aus eine Verbindung zu einem MySQL-Container herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!