docker - 在 Nginx、Gunicorn、Flask 和 Docker 下运行多个 Dash 应用

标签 docker nginx amazon-ec2 plotly-dash

我的项目尝试运行多个 Dockerized(不限于)Dash 应用程序,这些应用程序都使用 Flask 和由 Gunicorn 提供服务的 HTTP WSGI,由 Nginx 代理。 Plot.ly/Dash 创始人 @chriddyp 和其他人已经对此进行了一些概述。 要求是通过 HTTPS 为 Dash 应用程序提供服务,这可以使用易于安装的 Letsencrypt 证书轻松完成。

问题:是否应该将其分为多个 Docker 容器,即:主容器上的 Nginx、每个应用程序容器上的 Dash/Flask/Gunicorn 以及前端代理(Nginx 容器)上的 SSL 证书?

这是否需要 Docker SDN(软件定义网络)方法才能发挥作用?

这是在 AWS 中的普通 EC2 上运行。 (不是 bean 茎)

任何指导将不胜感激。一旦它运行起来,我将在 Github 上分享所有内容。

最佳答案

每个应用程序一个容器,一个用于 Nginx,一个用于 Gunicorn,一个用于 Dash,一个用于 Flask。

你不需要 Docker 的主机网络,但它肯定是一个优点,因为你可以解析其他容器主机名,所以当代理传递时,你可以这样做 http://dash如果您的 Dash 容器有 dash主机名。

我建议使用 Docker Compose 来完成这一切,因为它会让事情变得更容易。

如果您通过 unix 套接字运行 Gunicorn,您将需要一个卷来共享给 Nginx 容器,以便它可以访问它。

不确定是否有一些与 EC2 和 Docker 相关的特殊事物,遗憾的是我没有 AWS 知识。有人会填写这个:)

关于docker - 在 Nginx、Gunicorn、Flask 和 Docker 下运行多个 Dash 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51735567/

相关文章:

docker - 如何将Docker的 `--privileged`标志添加到Kubernetes pod spec容器YAML定义中

django - nginx 不会在某些端口上响应

python-3.x - Nginx proxy_pass 到 docker 容器不起作用

amazon-ec2 - EC2 社区 AMI 和市场 AMI 之间有什么区别

docker - 我可以通过通过镜像ID引用镜像的docker-compose.yml文件将服务部署到docker群吗?

docker - Docker 容器中的 Hugo 服务器在 Windows 10 中无法访问

nginx - 调用 webhook 失败 "validate.nginx.ingress.kubernetes.io": error while applying the ingress in Kubernetes

amazon-web-services - 设计用于海量数据的ElasticSearch集群

amazon-web-services - 如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板

docker - VSCode Docker扩展无法连接到Docker计算机