我正在尝试在Docker容器上运行数据库,并将其与我的代码连接。
这是我的连接字符串:
engine = create_engine('postgres+psycopg2://name:password@hostname:port/database_name')
作为host_name
,我使用安装Docker容器的Linux的IP地址。我还检查了我机器上的端口是否与Docker容器中的端口相同。端口设置为5101:5101
。
尝试连接后,显示错误:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "IP of machine", port 5101 failed: Connection refused
Is the server running on that host and accepting TCP/IP connections?
下面是我使用的Docker命令:
docker run --name rule-creator-dat -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=secret -p 10.10.50.8:5101:5101 -v /data:/var/lib/postgresql/data -d postgres
(IP地址只是我的服务器的例子)
有人知道问题出在哪里吗?
1条答案
按热度按时间t40tm48m1#
看起来,当端口Map到docker文件中时,PostgreSQL的docker内部的端口必须是
5432
。所以Map应该看起来是-p 5101:5432
。