繁体   English   中英

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

[英]Cannot connect to Docker PostgreSQL container in AWS EC2 instance

Docker新手在这里。

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

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

docker create -v /var/lib/postgresql/data --name postgres9.3.6-data busybox

然后我运行以下命令来创建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

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

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

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

我在这里错过了什么?

编辑

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

listen_addresses='*'

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

host all all 0.0.0.0/0 md5

postgresql.conf和pg_hba.conf看起来不错。 docker正确运行postgresql端口。 检查您的EC2入站规则,可能不允许访问端口5432。

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

listen_addresses ='*'

另外编辑pg_hba.conf。

您还需要提供主机ID。 通过docker exec -it / bin / bash登录到邮局容器中

打开主机文件,文件中的最后一行是主机ID。 该文件在etc目录中可用,文件名是host。

添加使用主机ID而不是0.0.0.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM