无法在使用docker工具箱运行的docker容器中访问postgres数据库。

问题描述 投票:0回答:1

我正在使用docker工具箱在windows 10 home上运行docker,我似乎无法访问在容器中运行的postgres数据库。

数据库肯定是在运行的,因为我可以通过使用 docker container ls.

数据库的端口,5432,似乎已经发布,我可以通过运行 netstat -atnnetstat显示

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服务器,但没有成功(我没有试过其他的东西,因为这超出了我的知识范围)。

docker virtual-machine virtualbox docker-toolbox
1个回答
0
投票

你是如何试图访问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> - 只是为了确保...

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