从 Docker 容器内部连接到 RDS Postgresql 数据库时出错
Error connecting to RDS Postgreql DB from inside Docker container
我在 Docker 容器中有一个应用 运行 Flask_sqlalchemy。
容器 运行 不正确,所以我深入尝试 运行 应用程序并得到以下错误:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
Is the server running on host "DBNAME.XXXXXXXXXX.eu-west-1.rds.amazonaws.com" (000.000.000.000) and accepting
TCP/IP connections on port 5432?
应用程序在容器外工作正常,我无法弄清楚发生了什么。
会不会和AWS-RDS安全组有关?它们当前配置为仅接受来自我们进行开发的办公室的入站连接。
编辑:
这是我的Docker文件:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential libpq-dev python-shapely
COPY . /src
WORKDIR /src
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "application.py"]
这是我正在执行的 Docker 运行 命令:
docker run -d -p 5000:5000 container_name
谢谢
我遇到了完全相同的问题 ;) 但通过确保以下内容解决了它:
- AWS ELB 环境配置是通用的 Docker(未针对 Python 进行预配置)。
- 环境是在包含 RDS 实例的 VPC 内部创建的。
- RDS 实例正在侦听来自 VPC 安全组的正确端口 (PostgreSQL:5432)(应该已经如此)。
我在 Docker 容器中有一个应用 运行 Flask_sqlalchemy。
容器 运行 不正确,所以我深入尝试 运行 应用程序并得到以下错误:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused
Is the server running on host "DBNAME.XXXXXXXXXX.eu-west-1.rds.amazonaws.com" (000.000.000.000) and accepting
TCP/IP connections on port 5432?
应用程序在容器外工作正常,我无法弄清楚发生了什么。
会不会和AWS-RDS安全组有关?它们当前配置为仅接受来自我们进行开发的办公室的入站连接。
编辑:
这是我的Docker文件:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential libpq-dev python-shapely
COPY . /src
WORKDIR /src
RUN pip install -r requirements.txt
EXPOSE 5000
CMD ["python", "application.py"]
这是我正在执行的 Docker 运行 命令:
docker run -d -p 5000:5000 container_name
谢谢
我遇到了完全相同的问题 ;) 但通过确保以下内容解决了它:
- AWS ELB 环境配置是通用的 Docker(未针对 Python 进行预配置)。
- 环境是在包含 RDS 实例的 VPC 内部创建的。
- RDS 实例正在侦听来自 VPC 安全组的正确端口 (PostgreSQL:5432)(应该已经如此)。