Connexion à une base de données MySQL hébergée localement à partir d'un conteneur Docker
Lors de la transition d'une application vers la production, il est souhaitable d'éviter d'utiliser le conteneur- base de données hébergée. Cet article explique comment connecter une base de données MySQL locale à une application exécutée dans un conteneur à l'aide de Docker Compose.
Configuration de Docker Compose
La configuration Docker Compose fournie démontre l'utilisation d'un service 'app-db' distinct pour la base de données MySQL. Pour vous connecter à une base de données MySQL locale, ajustez votre fichier Compose comme suit :
<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>
Connexion via le nom d'hôte
Au lieu d'utiliser « localhost », qui fait référence à le nom d'hôte interne du conteneur, utilisez 'host.docker.internal'. Cela correspond à l'adresse IP de l'hôte Docker, vous permettant de vous connecter à votre base de données locale.
Configuration Linux
Pour les systèmes Linux, ajoutez le paramètre suivant lors du démarrage de Docker conteneur :
<code class="bash">--add-host host.docker.internal:host-gateway</code>
Exemple d'utilisation
Dans votre application Web, remplacez les informations de connexion à la base de données pour utiliser « host.docker.internal » au lieu de « localhost ». Par exemple :
db = mysql.connector.connect( host="host.docker.internal", ... )
En implémentant ces modifications, vous pouvez connecter avec succès votre base de données MySQL locale à votre application exécutée dans un conteneur Docker.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!