Docker Postgres映像:主机没有pg_hba.conf条目

时间:2018-11-27 08:40:05

标签: postgresql docker

我有一个用于DB的Docker映像(已安装postgres),我尝试运行该映像,但得到以下信息:

  

db | 2018-11-27 08:29:28.849 UTC [2808]致命:否   主机“ 172.x.x.x”的pg_hba.conf条目,用户“ postgres”,数据库   “ postgres”,关闭SSL

我尝试了以下操作:

  • 更改IP并放置当前计算机的IP
  • 设置Postgres时:GET /photos/:name controllers.myController.getPhoto(name) 我把

这些都不起作用。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,使我的应用程序容器与我的postgres容器通信。我通过三个步骤解决了这个问题:

  1. 定义docker网络的网络IP地址范围
# +----------------------+
# |  docker-compose.yml  |
# +----------------------+
networks:
  my_docker_network:
    driver: bridge
    ipam:
      config:
        - subnet: 10.5.0.0/16
  1. 在postgres pg_hba.conf文件中将相同的网络IP地址范围列入白名单
# +---------------+
# |  pg_hba.conf  |
# +---------------+
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             10.5.0.0/16             trust

我使用trust来避免身份验证麻烦,但是您可以指定md5cert或任何其他有效的身份验证方法。

  1. 允许postgres监听postgresql.conf文件中的外部主机
# +-------------------+
# |  postgresql.conf  |
# +-------------------+
# - Connection Settings -
listen_addresses = '*'          # what IP address(es) to listen on;