【发布时间】:2020-04-22 18:54:30
【问题描述】:
我创建了一个包含 mariadb 实例的 docker 容器,但我无法从我的物理机器访问数据库:
我从 docker inspect 获得了 IP 地址,从 docker ps 获得了端口,但 Sequel Pro 给了我连接失败的消息(与 Visual Studio Code 相同)。显然,我可以从 docker 容器内部将自己连接到数据库引擎。
我哪里错了?非常感谢大家! :)
[编辑]感谢所有 cmets...
【问题讨论】:
-
你能ping mariadb 容器吗?如果你在你的本地主机上运行 nmap 来查看暴露了哪些端口呢?
-
需要将容器内的3306端口绑定到容器外的一个端口。然后,您将使用 Visual Studio 代码和 SQL Pro 中的外部端口。
-
当你运行容器时,你应该使用参数
-p 3306:3306绑定端口 -
@bishop Bee 在容器运行的机器上,不需要将端口
3306映射到容器外部,使用容器IP就足够了。 -
Docker 内部 IP 地址仅适用于一个非常特定的设置(从 Docker 外部调用,在同一台机器上,它是本机 Linux 主机),我建议永远不要查看它们全部。如果您尝试远程访问数据库或者它是 MacOS 主机,则将无法正常工作。
标签: mysql docker mariadb docker-container