我是一个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。
之后,我ssh到了AWS中的一个EC2实例。并按照上述相同的步骤操作。然后返回到PostgreSQL桌面客户端并尝试连接。但是我收到了以下错误消息:
“连接被拒绝。请检查主机名和端口是否正确,并且postmaster接受TCP / IP连接。”
这里我漏掉了什么?
编辑
我已经检查并设置了postgresql.conf文件中的listen_addresses。
listen_addresses='*'
并将以下行追加到pg_hba.conf文件中:
host all all 0.0.0.0/0 md5