无法连接到 AWS EC2 实例中的 Docker PostgreSQL 容器

hnr*_*oot 6 postgresql amazon-ec2 amazon-web-services docker

Docker 新手在这里。

我正在尝试在 AWS EC2 实例中为 PostgreSQL 创建一个 docker 容器。

首先,为了实现持久性,我使用了数据卷容器。这是我用来为我的 PostgreSQL 数据库创建数据卷容器的命令:

docker create -v /var/lib/postgresql/data --name postgres9.3.6-data busybox
Run Code Online (Sandbox Code Playgroud)

然后我运行以下命令来创建 PostgreSQL 容器:

docker run --name postgres9.3.6 \
-p 5432:5432 \
-e POSTGRES_PASSWORD=password \
-e POSTGRES_USER=root \
-e POSTGRES_DB=db_name \
-d --volumes-from postgres9.3.6-data postgres:9.3.6
Run Code Online (Sandbox Code Playgroud)

我在我的本地环境中运行它,然后尝试通过 PostgreSQL 桌面客户端连接到它并且它工作正常。我能够连接到存储在本地 PostgreSQL docker 容器中的 db_name。

在此之后,我进入 AWS 中的一个 EC2 实例。并遵循我上面描述的相同流程。然后返回到 PostgreSQL 桌面客户端并尝试连接到它。但我收到以下错误消息:

拒绝连接。检查主机名和端口是否正确以及 postmaster 是否正在接受 TCP/IP 连接。

我在这里缺少什么?

编辑

我已经检查并将 postgresql.conf 文件上的 listen_addresses 设置为

listen_addresses='*'
Run Code Online (Sandbox Code Playgroud)

并将以下行附加到 pg_hba.conf 文件:

host all all 0.0.0.0/0 md5
Run Code Online (Sandbox Code Playgroud)

Mar*_*mer 0

您必须编辑postgresql.conf,将listen_addresses参数设置为'*':

监听地址 = '*'

还要相应地编辑 pg_hba.conf。