Heim  >  Artikel  >  Datenbank  >  Wie kann ich von einem Docker-Container aus eine Verbindung zu einer lokal gehosteten MySQL-Datenbank herstellen?

Wie kann ich von einem Docker-Container aus eine Verbindung zu einer lokal gehosteten MySQL-Datenbank herstellen?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 18:42:30201Durchsuche

How to Connect to a Locally Hosted MySQL Database from a Docker Container?

Herstellen einer Verbindung zu einer lokal gehosteten MySQL-Datenbank aus einem Docker-Container

Beim Übergang einer Anwendung zur Produktion ist es wünschenswert, die Verwendung des Containers zu vermeiden. gehostete Datenbank. In diesem Artikel wird beschrieben, wie Sie mithilfe von Docker Compose eine lokale MySQL-Datenbank mit einer Anwendung verbinden, die in einem Container ausgeführt wird.

Docker Compose-Konfiguration

Ihre bereitgestellte Docker Compose-Konfiguration demonstriert die Verwendung eines separaten „app-db“-Dienstes für die MySQL-Datenbank. Um stattdessen eine Verbindung zu einer lokalen MySQL-Datenbank herzustellen, passen Sie Ihre Compose-Datei wie folgt an:

<code class="yaml">version: '3'
services:
  web-app:
    ...

  app-db:
    image: mysql:8
    environment:
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_DATABASE=<database-name>
    ports:
      - 3306:3306</code>

Verbindung über Hostnamen herstellen

Anstatt „localhost“ zu verwenden, was sich auf bezieht Verwenden Sie für den internen Hostnamen des Containers „host.docker.internal“. Dies wird in die IP-Adresse des Docker-Hosts aufgelöst, sodass Sie eine Verbindung zu Ihrer lokalen Datenbank herstellen können.

Linux-Konfiguration

Fügen Sie für Linux-Systeme den folgenden Parameter hinzu, wenn Sie Docker starten Container:

<code class="bash">--add-host host.docker.internal:host-gateway</code>

Beispielverwendung

Ersetzen Sie in Ihrer Webanwendung die Datenbankverbindungsinformationen, um „host.docker.internal“ anstelle von „localhost“ zu verwenden. Zum Beispiel:

db = mysql.connector.connect(
    host="host.docker.internal",
    ...
)

Durch die Implementierung dieser Änderungen können Sie Ihre lokale MySQL-Datenbank erfolgreich mit Ihrer Anwendung verbinden, die in einem Docker-Container ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich von einem Docker-Container aus eine Verbindung zu einer lokal gehosteten MySQL-Datenbank herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn