如何在 Docker 中连接到我的 MariaDB 运行?

How can I connect to my MariaDB running in Docker?

我已经在我的开发机器上本地启动了一个 MariaDB 容器来查看它,但我无法连接。

Docker 命令:

docker run --name mariadbtest -p 3306:3306 -v C:\docker\mariadb:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=yolo123 -d mariadb:latest

如果我运行命令我得到IP(172.17.0.3):

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mariadbtest

运行一切正常,日志状态已准备好连接。我安装了 HeidiSQL 并尝试连接到它,但它指出无法连接。我也写了一个小的 c# 应用程序,但它是同一个故事。

如果我在 Docker 桌面应用程序中检查它,它会声明绑定到 0.0.0.0:3306

它是否应该绑定到该 IP,还有什么问题吗?

服务绑定到 0.0.0.0 的事实并不真的意味着它会监听该地址。它实际上是isn’t a proper address,它是一种表示服务应该监听所有可用接口的符号。

在您的情况下 - 您的容器将其端口 3306 暴露给主机端口 3306,因此您应该能够连接到 127.0.0.1:3306IPPORT).

警告 - 您似乎在 Windows 上 运行,因此您可能需要修改一些防火墙设置以使其正常工作(尝试禁用防火墙并检查是否可以连接,然后重新启用它并找出您必须更改的规则)