我正在使用Docker for windows。我有一些容器(dev-httpd、dev-mysql等)。我正在尝试从远程下载数据库(在我的dev-mysql容器中复制它),但我无法从docker连接到该数据库。当我通过xampp运行一些数据库工具(例如管理员),并使用登录名和密码插入来自SQL命令的值时,我可以连接到它的(我可以看到数据库,看到数据,...)。
我是否需要在虚拟docker机器中设置防火墙规则以允许远程数据库?
我在窗口启动时启动docker,然后我使用docker-compose up -d (它启动了我需要的所有容器),然后我通过docker exec -ti dev-httpd bash命令登录。
有人知道可能会出什么问题吗?
发布于 2018-06-05 17:17:25
问题出在localhost和0.0.0.0上
Localhost只允许您从该机器访问端口,使用0.0.0.0将使其在外部可见。或者直接使用你的IP地址而不是默认地址。
发布于 2018-06-05 03:48:16
我猜您的数据库不能使用公共IP地址或公共主机名。从您的容器内部,您只能访问公共IP地址或主机名,因为在默认情况下,您的容器不知道您的本地网络配置。
我认为将主机网络与docker run的--network host
选项一起使用会更成功。请参见(https://docs.docker.com/network/host/)
https://stackoverflow.com/questions/50687079
复制相似问题