在EC2上使用docker-compose的用户“postgres”密码验证失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在EC2上使用docker-compose的用户“postgres”密码验证失败相关的知识,希望对你有一定的参考价值。

在由docker-machine创建的EC2 linux服务器上,当我启动docker postgres:10.6 by docker-compose时,我有这些循环错误:

FATAL:  password authentication failed for user "postgres"
DETAIL:  Password does not match for user "postgres".
Connection matched pg_hba.conf line 95: "host all all all md5"

如果我手动启动容器,我没有这些错误=> docker run -e POSTGRES_PASSWORD = myPassword postgres:10.6

我的本地docker中没有这些错误

我的码头组成:

  db:
    container_name: postgres
    image: postgres:10.6
    restart: always
    environment:
      POSTGRES_PASSWORD: myPassword
    ports:
      - "5432:5432"

是否有人有想法解决这个问题(我被困了两天)?

答案

这可能是因为第一次启动后卷(或绑定挂载目录)已经初始化。 postgres用户和数据库创建仅在第一次启动时发生(即/ var / lib / postgresql / data必须不包含数据库文件)。尝试运行:

  • docker-compose rm -fv postgres删除任何容器或卷(特别是)。
  • docker-compose up -d开始你的容器。
另一答案

对不起,我有我的问题的答案,这不是一个错误我只是尝试永久连接到postgres(通过端口5432打开)...

搜索之后,我认为这是一次黑客攻击,因为传入的连接永远不会来自同一个IP

connection received: host=45.120.120.149.81 port=47118
connection received: host=210.4.125.252 port=44774
connection received: host=82.223.55.254 port=36320

等等....

以上是关于在EC2上使用docker-compose的用户“postgres”密码验证失败的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose exec python 输入设备不是 AWS EC2 UserData 中的 TTY

docker - 如何将 mysql 数据从本地迁移到 ec2 实例

在EC2上创建root用户,并使用root用户登录

sh EC2上的Amazon Linux AMI 2017.09.0(HVM)上的golang,docker和docker-compose的安装脚本

在aws ec2上使用root用户登录

在 EC2 实例上使用用户数据脚本运行 ansible-playbook