我正在使用docker工具箱在windows 10 home上运行docker,我似乎无法访问在容器中运行的postgres数据库。
数据库肯定是在运行的,因为我可以通过使用 docker container ls
.
数据库的端口,5432,似乎已经发布,我可以通过运行 netstat -atn
netstat显示
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 :::5432 :::* LISTEN
根据我的理解,我现在应该可以用docker机器的IP地址(192.168.99.100)和端口号(5432)访问它。然而这似乎并不奏效。
然后我试着把vm的端口转发添加到端口,客人和主机的端口都是5432,主机和客人的IP留空。但我还是无法访问它。
我试过将数据库连接的主机改为localhost和192.168.99.100,也没有。
我可以用ping和ssh到达192.168.99.100。
我试过重新安装,关闭和打开,以及我看到的类似问题的无数其他解决方案,但似乎没有任何工作。
这也不限于这个postreg数据库,似乎任何托管在默认机器容器中的东西都不能从主机上访问。我也试过在容器中的web服务器,但没有成功(我没有试过其他的东西,因为这超出了我的知识范围)。
你是如何试图访问Postgres容器的?如果你试图使用HTTP访问,通过输入 http://192.168.99.100:5432
到web浏览器中;这可能是行不通的,因为在你使用的postgres镜像上可能没有webserver监听HTTP请求。
你能不能试着在你使用的postgres镜像上运行 docker run -p 8080:80 nginx
然后访问 http://192.168.99.100:8080
在网页浏览器中。另外,通过在网页浏览器中运行 docker-machine ip <name-of-machine>
- 只是为了确保...