我正在使用Docker for windows。我有一些容器(dev-httpd,dev-mysql等)我试图从远程下载数据库(在我的dev-mysql容器中复制它),我无法连接到该数据库搬运工即可。当我通过xampp运行一些数据库工具(例如Adminer)并使用登录名和密码插入SQL命令的值我可以连接到它(我可以看到数据库,请参阅数据,...)
我是否需要以某种方式在虚拟docker机器中设置防火墙规则以允许远程数据库?
我在窗口启动时启动docker,然后我使用 docker-compose up -d (启动我需要的所有容器)然后通过 docker exec登录 - ti dev-httpd bash 命令。
有谁知道可能会出现什么问题?
答案 0 :(得分:0)
我猜您的数据库不具有公共IP地址或公共主机名。从容器内部,您只能访问公共IP地址或主机名,因为默认情况下,您的容器无法了解您的本地网络配置。
我认为您使用主机网络与docker run的--network host
选项更成功。见(https://docs.docker.com/network/host/)
答案 1 :(得分:0)
问题在于localhost和0.0.0.0
Localhost允许您仅从该计算机访问该端口,使用0.0.0.0将允许它在外部可见。或者只使用您的IP而不是默认值。