无法连接到Docker内部的MySQL服务器

问题描述 投票:8回答:3

首先我运行mysql映像:

docker run -e MYSQL_ROOT_PASSWORD=password  -d  -p 127.0.0.1:3308:3306 mysql

然后我使用容器重击:

docker exec -it my_container_name bash

在Bash中,我可以通过命令成功连接到MySQL服务器:

mysql -uroot -ppassword

但是当我尝试从Windows cmd连接到MySQL容器时:

mysql -uroot -ppassword -h127.0.0.1 -P3308

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (10061)

如果我改为连接到192.168.99.100(此IP由docker-machine ip返回),那么结果是相同的。

问题是:如何将Docker内部的MySQL端口正确暴露给Windows外部?

mysql docker database-connection port
3个回答
3
投票

错误出在原始docker run命令中的端口映射中,您只需要提供端口,而不是IP地址:

docker run -e MYSQL_ROOT_PASSWORD=password -d -p 3308:3306 mysql

0
投票

首先,检查netstat -an以确保端口在Windows中打开。如果是的话,还请检查Windows防火墙以确保没有任何东西阻止该端口的连接。

我的大部分Docker经验都在CoreOS中,所以我不确定Windows如何处理将流量路由到容器中。在CoreOS中,它使用proxy。如果Windows中有代理,请确保没有任何干扰。


0
投票

更改运行图像的端口有效。我检查了此端口是否被其他人使用,但未使用。所以我只是拼命地在另一个端口“ 3309”中运行一个新容器。而且效果很好!

© www.soinside.com 2019 - 2024. All rights reserved.