Je souhaite utiliser le conteneur MySQL, créez le conteneur selon la description sur hub
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8
docker run -d --name nx --link mysql:db nginx
La connexion échoue lors de l'utilisation directe du conteneur de base
~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bf673d61f789 nginx "nginx -g 'daemon ..." 3 seconds ago Up 2 seconds 80/tcp, 443/tcp nx
1ac01c685e9b mysql:8 "docker-entrypoint..." About a minute ago Up About a minute 3306/tcp mysql
Impossible d'accéder à localhost:3306 dans nginx
Utilisez la commande docker inspect -f "{{ .HostConfig.Links }}" proxy
docker inspect -f "{{ .HostConfig.Links }}" proxy
[/mysql:/nx/db]
[/mysql:/nx/db]
pour voir que la connexion est un succès
nginx héberge en
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4 db 1ac01c685e9b mysql
172.17.0.6 8242073e142b
Cela semble un peu aléatoire,
Très différent du localhost :3306 auquel je m'attendais
Existe-t-il un moyen d'utiliser localhost:3306 après la connexion ?
Link consiste à établir un lien réseau entre deux conteneurs, et non à fusionner les ports réseau des deux conteneurs ensemble ! !
Activez l'accès
localhost:3306
换成访问db:3306
pour accéder avec succès au service de base de données