Sha*_*ica 5 postgresql docker docker-for-windows
我在Windows 10计算机上运行Postgres,我想从Docker容器连接到它.我遵循了许多来源的指示,事情应该有效,但事实并非如此.
用于创建Docker容器的命令行:
docker run --rm -d --network=host --name mycontainer myimage
Run Code Online (Sandbox Code Playgroud)
在postgresql.conf:
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
在pg_hba.conf:
host all all 172.17.0.0/16 trust
Run Code Online (Sandbox Code Playgroud)
在我的容器的bash shell中,我运行:
psql -h 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
我收到错误:
psql:无法连接到服务器:连接被拒绝
服务器是否在主机"127.0.0.1"上运行并接受端口5432上的TCP/IP连接?
毋庸置疑,Postgres肯定在我的计算机上运行,我可以从本地应用程序查询它.我错过了什么?
小智 2
正如您所发现的,它--network-host不适用于 Windows 版 Docker 或 Mac 版 Docker。它仅适用于 Linux 主机。
对于这种情况,一种选择可能是也在容器中托管 PostgreSql。如果使用docker-compose文件部署它们,则应该能够拥有两个联网的独立 Docker 容器(一个用于数据库,一个用于服务)。默认情况下,docker-compose将使用容器名称作为其 DNS 名称,将容器公开给同一 compose 文件中的其他容器。
您还可以考虑将数据库包含在与服务相同的容器中,但我认为 docker-compose 解决方案更好,原因如下:
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |