从Docker容器内部连接到RDS Postgreql DB时出错

时间:2017-03-07 11:18:39

标签: amazon-web-services docker flask sqlalchemy amazon-rds

我有一个在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安全组有关吗?它们目前配置为仅接受来自我们办公室的入站连接。

编辑:

这是我的Dockerfile:

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 Run命令:

docker run -d -p 5000:5000 container_name

由于

1 个答案:

答案 0 :(得分:2)

我有完全相同的问题;)但是通过确保以下内容解决了这个问题:

  • AWS ELB环境配置是Generic Docker(未针对Python预先配置)。
  • 环境是在包含RDS实例的VPC内部创建的。
  • RDS实例正在从VPC安全组中侦听正确的端口(PostgreSQL:5432)(这应该是这种情况)。