lig*_*ite 6 database postgresql networking docker docker-compose
我试图通过在服务器pg_hba.conf文件中指定客户端容器的主机名来允许从一个 Docker 容器连接到 postgres 容器。Postgres 的文档表明可以指定主机名,而不是 IP 地址。由于我使用 Docker Compose 来启动两个容器,因此它们应该可以使用 Docker Compose 的 DNS 通过容器名称相互访问。出于安全原因,我不想打开所有 IP 地址,当我最终为其他容器添加访问权限时,在 pg_hba.conf 文件中指定容器名称而不是为每个容器分配静态 IP 地址会容易得多其中。但是,当我尝试执行此操作时,它失败并显示如下消息:
psql: FATAL: no pg_hba.conf entry for host "192.168.208.3", user "postgres", database "postgres", SSL off
这是我正在尝试做的最小可重复示例:
我使用以下 Docker Compose 文件:
version: '3'
services:
postgresdb:
image: postgres:9.4
container_name: postgres-server
ports:
- "5432:5432"
volumes:
- "postgres-data:/var/lib/postgresql/data"
postgres-client:
image: postgres:9.4
container_name: postgres-client
depends_on:
- postgres-server
volumes:
postgres-data:
Run Code Online (Sandbox Code Playgroud)
运行后docker-compose up,我 exec 进入服务器容器并将pg_hba.conf文件修改为/var/lib/postgresql/data如下所示:
host all postgres postgres-client trust
Run Code Online (Sandbox Code Playgroud)
然后我重新启动 postgres 服务器(docker-compose downthen docker-compose up)并pg_hba.conf从已安装的卷中加载修改后的内容。
我执行到客户端容器并尝试连接到 postgres 服务器:
docker exec -it postgres-client /bin/bash
psql -U postgres -h postgres-server postgres
Run Code Online (Sandbox Code Playgroud)
这是我收到如下错误的地方:
psql: FATAL: no pg_hba.conf entry for host "192.168.208.3", user "postgres", database "postgres", SSL off
Run Code Online (Sandbox Code Playgroud)
我似乎无法在网上找到任何显示如何使其工作的内容。我找到了一些例子,它们只是打开所有或一系列 IP 地址,但没有一个例子可以使用主机名。以下是一些相关的问题和信息:
关于如何使用 Docker Compose 以我期望的方式使其工作的任何想法?
您需要在 中添加客户端容器的完全限定主机名pg_hba.conf。
host all postgres postgres-client.<network_name> trust
Run Code Online (Sandbox Code Playgroud)
例如:
host all postgres postgres-client.postgreshostresolution_default trust
Run Code Online (Sandbox Code Playgroud)
如果未定义网络,network_name则为<project_name>_default。默认情况下project_name是 docker-compose.yml 所在的文件夹。
要获取网络名称,您还可以调用
docker inspect postgres-client | grep Networks -A1
Run Code Online (Sandbox Code Playgroud)
或者
docker network ls
Run Code Online (Sandbox Code Playgroud)
获取当前在 docker 主机上定义的所有 docker 网络的列表
| 归档时间: |
|
| 查看次数: |
2709 次 |
| 最近记录: |