【问题标题】:Accessing containerized Django app from ECS public IPv4 endpoint从 ECS 公共 IPv4 端点访问容器化 Django 应用程序
【发布时间】:2019-06-22 20:18:48
【问题描述】:

我有一个 dockerized django 应用程序,存储在 ECR 中。当我设置一个新的ECS 集群(使用Fargate)时,该图像正确加载,我可以在Cloudwatch 中看到日志:

20:12:21 Operations to perform:
20:12:21 Apply all migrations: admin, auth, contenttypes, sessions
20:12:21 Running migrations:
20:12:21 No migrations to apply.
20:12:23 No changes detected
20:12:25 Watching for file changes with StatReloader
20:12:25 Performing system checks...
20:12:25 System check identified no issues (0 silenced).
20:12:26 June 22, 2019 - 20:12:26
20:12:26 Django version 2.2.2, using settings 'config.settings'
20:12:26 Starting development server at http://127.0.0.1:8000/
20:12:26 Quit the server with CONTROL-C.

但是当我到达任务网络详细信息下列出的公共 ipv4 并在浏览器中转到 :8000 时,没有加载任何内容,并且我没有看到任何请求发送到云手表容器中的服务器。

我想知道这个问题是否与使用有关: python manage.py runserver 0.0.0.0:8000 在我的容器设置中,或者在安全组中的设置等中。 但是我已经允许入站流量到 127.0.0.10.0.0.0 端口 8000 里面的设置。

当我查看了各种文档时,我有点不知所措,而且我的配置设置似乎也类似。

【问题讨论】:

    标签: python django amazon-web-services docker


    【解决方案1】:

    如果您的容器在桥接模式中运行,您需要将您的主机端口映射到容器端口 类似docker run -p <port>:8000.在浏览器上查看它为public_ip:port 您必须在fargate 中进行类似的配置。

    【讨论】:

      【解决方案2】:

      在 Fargate 的 AWS 控制面板中检查此特定容器定义是否具有正确的端口映射。 在您的情况下,您需要映射到端口:8000,因为您的应用正在侦听该端口。此外,您需要在容器中创建该应用程序正在侦听0.0.0.0,而不是127.0.0.1(至少从日志端口我可以看到您将其绑定到127.0.0.1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-03
        • 1970-01-01
        • 2016-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多