无法连接到 Dash 应用 运行 Docker 并托管在 EC2 上

Unable to connect to Dash app running with Docker and hosted on EC2

我知道有人问过这个问题的(很多)版本,但其中 none 已经解决了我的问题。我在 AWS EC2 实例上有一个 运行 Docker 的 Dash 应用程序。我想从我的浏览器 (Firefox) 访问它,但我不断收到 Firefox can’t establish a connection to the server at 17.67.12.567:8085(我已经更改了 public IPv4 地址,17.67.12.567 来自我正在使用的实际地址,但是那不应该重要吗?)。

我 运行 带有 docker run -t -i -p 80:80 app_name 的应用程序输出:

[2021-10-27 08:15:00 +0000] [1] [INFO] Starting gunicorn 20.0.4
[2021-10-27 08:15:00 +0000] [1] [INFO] Listening at: http://0.0.0.0:8085 (1)
[2021-10-27 08:15:00 +0000] [1] [INFO] Using worker: threads
[2021-10-27 08:15:00 +0000] [8] [INFO] Booting worker with pid: 8
[2021-10-27 08:15:00 +0000] [9] [INFO] Booting worker with pid: 9
[2021-10-27 08:15:00 +0000] [10] [INFO] Booting worker with pid: 10
[2021-10-27 08:15:00 +0000] [11] [INFO] Booting worker with pid: 11

所以,我希望能够在 http:17.67.12.567:8085 访问该应用程序,但是,当我这样做时,我收到 Firefox can’t establish a connection to the server at 17.67.12.567:8085 错误。

我已经阅读了很多关于防火墙和安全组设置的内容,我认为 EC2 实例的安全组设置尽可能开放(我知道这是个坏主意,但我会尽快缩小范围访问应用程序!);下面是 EC2 实例的安全组设置的屏幕截图。

能想到的就这些了,谢谢大家的帮助!

好吧,我在发布后大约五分钟就弄明白了,抱歉,但希望这能帮助其他正在从事他们不完全理解的项目的可怜人!

问题出在端口映射上;它需要与 Listening at: http://0.0.0.0:8085 (1) 中显示的端口完全匹配。所以,而不是使用 docker run -t -i -p 80:80 app_name 我需要使用 docker run -t -i 8085:8085 app_name.

一旦我 运行 使用 docker run -t -i 8085:8085 app_name 的应用程序,我就能够按预期在 http:17.67.12.567:8085 上访问它。

感谢this answer指导!