


Comment connecter une base de données MySQL locale à un conteneur Docker sans modifier la configuration du conteneur ?
Oct 29, 2024 pm 04:36 PMConnexion d'une base de données MySQL locale à un conteneur Docker
Lors de la transition d'applications vers la production à l'aide d'une configuration Dockerisée, il peut y avoir un désir d'éviter l'utilisation de conteneurs bases de données. Cet article explique comment connecter une base de données MySQL hébergée localement à une application exécutée dans un conteneur Docker, sans modifier la configuration de la base de données du conteneur.
Modification de docker-compose.yml
Le docker-compose fourni Le fichier .yml inclut un service nommé « app-db » qui initialise une base de données MySQL dans le conteneur. Pour connecter l'application à une base de données MySQL externe :
- Supprimez le service "app-db" du fichier docker-compose.yml.
- Ajoutez une section "environnement" à le service "web-app", où les détails de connexion à la base de données sont spécifiés :
<code class="yaml">version: '3' services: web-app: build: context: . dockerfile: web-app/Dockerfile ports: - 8080:8080 environment: - MYSQL_HOST=host.docker.internal - MYSQL_PORT=3306 - MYSQL_USER=username - MYSQL_PASSWORD=password - MYSQL_DATABASE=database_name</code>
Assurer la résolution de l'hôte
Pour les systèmes Linux, les conteneurs Docker sont isolés de la configuration réseau de l'hôte . Pour permettre à l'application web de résoudre l'adresse host.docker.internal, le conteneur doit être démarré avec le paramètre "--add-host host.docker.internal:host-gateway" :
<code class="sh">docker run --add-host host.docker.internal:host-gateway ...</code>
Ce Le paramètre garantit que le conteneur peut résoudre host.docker.internal en l'adresse IP de l'hôte.
Connexion à la base de données externe
Avec le docker-compose.yml modifié et la configuration du conteneur en place, le L'application Web doit pouvoir se connecter à la base de données MySQL hébergée localement comme spécifié dans les variables d'environnement.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
