我使用以下命令创建了一个带有Postgres的Docker镜像:
docker pull postgres docker run --name test-db -e POSTGRES_PASSWORD=my_secret_password -d postgres
然后我创建了一个名为test的表并在几行中插入了一些随机数据。现在,我正在尝试通过Python中的psycopg2连接到此数据库表。我使用命令docker-machine ip default查找机器的IP地址为192.168.99.100,并使用以下内容尝试连接:
这似乎出现了错误,提示信息为“OperationalError: could not connect to server: Connection refused (0x0000274D/10061)”。
一切看起来都没问题,我不知道为什么会被拒绝连接。根据此Postgres镜像的文档(在https://hub.docker.com/_/postgres/),该镜像包含EXPOSE 5432(Postgres端口),默认用户名为postgres。
我还尝试使用
docker pull postgres docker run --name test-db -e POSTGRES_PASSWORD=my_secret_password -d postgres
然后我创建了一个名为test的表并在几行中插入了一些随机数据。现在,我正在尝试通过Python中的psycopg2连接到此数据库表。我使用命令docker-machine ip default查找机器的IP地址为192.168.99.100,并使用以下内容尝试连接:
conn = psycopg2.connect("dbname='test-db' user='postgres' host='192.168.99.100' password='my_secret_password' port='5432'")
这似乎出现了错误,提示信息为“OperationalError: could not connect to server: Connection refused (0x0000274D/10061)”。
一切看起来都没问题,我不知道为什么会被拒绝连接。根据此Postgres镜像的文档(在https://hub.docker.com/_/postgres/),该镜像包含EXPOSE 5432(Postgres端口),默认用户名为postgres。
我还尝试使用
docker inspect test-db | grep IPAddress | awk 'print{$2}' | tr -d '",'
获取镜像本身的IP地址,这是我在一个稍微相关的文章中找到的方法,但是那个IP地址也不能用。
psql
)进行连接吗? - Chris