繁体   English   中英

如何从 Windows 机器中的 Docker 容器内部连接到本地主机上的 MySQL 服务器?

[英]How to connect to MySQL server on localhost from inside of a Docker container in a windows machine?

我在 Linux 上看到了另一张票。 我的问题是在 Windows 上。

我希望在 Container 内运行的 Java 代码连接到localhost127.0.0.1上的 MySQL。

我可以使用localhost127.0.0.1从主机连接到 MySQL,但不能从容器内连接。

我也试过网络选项--net="host"

您可以使用此主机名从容器内连接到主机上运行的服务: docker.for.win.localhost

net=host 选项不适用于 Windows 的 Docker。

要连接到主机,您需要在docker网络接口上获取主机的ip,并使用该ip进行连接。

在你的 windows 机器上运行命令ipconfig ,并获取 docker 接口的 ip。 在容器内部使用该 IP 连接到主机上运行的 MYSQL。

在类似的情况下,我不得不做两件事:

  • 如前所述在这里,你可能需要打开本地MySQL控制台和特权(用户应该先创建)的MySQL用户:

     创建用户 'myuser1'@'192.168.1.123' 由 'pass123' 识别;\n将 *.* 上的所有权限授予 'myuser1'@'192.168.1.123';\n同花顺特权;

    (其中192.168.1.123是一个示例本地网络 IP 地址,随您更改,甚至可能是172.1.xx -IP 地址,例如172.1.xx

  • 然后,在连接到 MySql 主机时,您可能需要使用host.docker.internal:3308 (或任何端口)。 如果这不成功,请在那里也使用本地网络 IP 地址。

如果您尝试从 django docker 容器连接 mysql(windows localhost 中的服务),docker.for.win.localhost 确实有效。 保持'HOST':'docker.for.win.localhost',在setting.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM