docker无法通过宿主ip访问容器中的mysql
过去多啦不再A梦
过去多啦不再A梦 2017-04-25 09:01:33
0
7
1661

如图

这里设置的应该是,将容器的3306映射到主机的3366上,但是我只能通过192.168.99.100:3366来连接容器内的mysql服务

我宿主机的真实ip是10.0.0.2

但是我通过10.0.0.2:3366却连接不上,求大神指点一下

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(7)
習慣沉默

Pour répondre directement à votre question :
La raison pour laquelle vous devez utiliser 192.168.99.100:3366 pour accéder au conteneur au lieu de l'IP de l'hôte : 10.0.0.2 est : vous avez utilisé Toolbox, et Toolbox est utilisé par défaut En ce qui concerne la machine virtuelle Virtualbox, il existe une couche supplémentaire.

Description de l'image :

@Youming a raison. Il est recommandé d'utiliser Docker pour Mac Toolbox sera progressivement abandonné.

我想大声告诉你

Essayez de désactiver le pare-feu

曾经蜡笔没有小新

Essayez de voir si vous pouvez vous connecter dans le conteneur. Par défaut, la configuration MySQL ne peut se connecter qu'à l'adresse IP 127.0.0.1.

刘奇

Fournissez quelques idées :

  • Testez d'abord l'état du service MySQL sur chaque IP via le port 3306, tel que :

telnet 10.0.0.2 3306
telnet 192.168.99.100 3306
  • Si telnet constate que le port est ouvert, vérifiez les paramètres MySQL, c'est-à-dire si les clients MySQL avec d'autres adresses IP sont autorisés à accéder

PHPzhong

Pour ajouter le segment réseau du conteneur Docker au pare-feu, veuillez autoriser l'accès à l'hôte

洪涛

iptables -F

我想大声告诉你

Pourquoi utilisez-vous la version Toolbox de Docker maintenant ? Si vous utilisez directement la dernière version de Docker pour Mac, votre problème ne sera pas un problème...

Docker s'exécute en fait sur une machine virtuelle Linux sur un système Mac. La version Toolbox de Docker utilise VirtualBox comme machine virtuelle car il s'agit d'une application tierce et l'interface fournie par l'application est limitée, bien que Docker puisse mapper. ports vers la machine virtuelle, mais le port de la machine virtuelle ne peut pas être mappé à l'hôte. Pour réaliser ce mappage, vous devez effectuer manuellement le mappage des ports dans VirtualBox.

La nouvelle version de Docker pour Mac utilise xhyve comme fournisseur de machine virtuelle. En raison de la prise en charge native du système Mac, elle fournit des interfaces plus riches et peut également compléter automatiquement le mappage de ports entre la machine virtuelle et l'hôte. . Par conséquent, dans la nouvelle version de Docker pour Mac, il n'est pas nécessaire de mapper manuellement la machine virtuelle au port hôte. Vous pouvez directement utiliser le port local 127.0.0.1 pour accéder au conteneur qui y est lié.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal