【问题标题】:Error connecting to RDS Postgreql DB from inside Docker container从 Docker 容器内部连接到 RDS Postgresql DB 时出错
【发布时间】:2017-03-07 11:18:38
【问题描述】:

我有一个在 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

谢谢

【问题讨论】:

  • 您好,请发布更多详细信息。完整的 docker run 命令或 docker-compose.yml 以及你 Dockerfile 的所有或相关部分
  • 感谢您回复我,我已使用 Dockerfile 和命令在帖子中添加了一些编辑。
  • 我没有发现您的配置有任何问题。只需进行测试,将安全组开放给任何人。然后,如果这是问题,你可以配置你的容器来表现你的主机。

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


【解决方案1】:

我遇到了完全相同的问题;)但通过确保以下内容解决了它:

  • AWS ELB 环境配置为通用 Docker(未针对 Python 进行预配置)。
  • 环境是在包含 RDS 实例的 VPC 内创建的。
  • RDS 实例正在侦听来自 VPC 安全组的正确端口 (PostgreSQL:5432)(应该已经是这种情况)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-20
    • 2021-07-18
    • 2019-04-29
    • 2020-02-08
    • 2017-10-26
    • 2017-05-04
    • 2023-01-19
    相关资源
    最近更新 更多