Comment se connecter de localhost au conteneur Docker exécuté sur le réseau Docker
<p>J'ai un conteneur Docker MySQL écrit en utilisant Docker comme ceci :</p>
<pre class="brush:php;toolbar:false;">version : "3.3"
prestations de service:
serveur de base de données :
nom_conteneur : base de données
image : mysql : dernière
construire:
fichier docker : ./Dockerfile
environnement:
MYSQL_ROOT_PASSWORD : rootTest
MYSQL_USER : Soumalya
MYSQL_PASSWORD : test utilisateur
ports :
- "3031:3306"
réseaux :
- interne
tomes :
-mysql:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
redémarrage : à moins d'être arrêté
réseaux :
interne:
pilote : pont
tomes :
mysql :</pre>
<p>Je me connecte à localhost:3031 avec le bon mot de passe, mais cela me donne cette erreur : </p>
<pre class="lang-bash Prettyprint-override"><code>Accès refusé pour l'utilisateur 'root'@'172.19.0.1' (en utilisant le mot de passe : OUI)
</code></pre>
<p>Comment corriger cette erreur ? Les autres conteneurs du même réseau interne ne parviennent pas non plus à se connecter à la base de données. </p><p>Je donne le contenu du Dockerfile ici :</p><p><code></code></p>
<pre class="brush:php;toolbar:false;">AJOUTER init.sql init.sql</pre>
<p>J'ai donné le contenu de init. sql ici :</p>
<pre class="brush:php;toolbar:false;">créer une base de données s'il n'existe pas d'avis ;
créer une base de données s'il n'existe pas d'utilisateurs ;
créer une base de données s'il n'existe pas de fournisseurs ;
ACCORDEZ TOUS LES PRIVILÈGES sur les avis.* à 'soumalya'@'%' ;
ACCORDEZ TOUS LES PRIVILÈGES sur les utilisateurs.* à 'soumalya'@'%';
ACCORDEZ TOUS LES PRIVILÈGES sur les fournisseurs.* à 'soumalya'@'%';</pre>
<p>Dans les journaux du conteneur, je peux voir que la base de données démarre et attend les connexions entrantes sur le port 3306. </p>