【发布时间】:2015-02-02 22:51:46
【问题描述】:
我有几个 Django,我想将它们托管在一个运行 CentOS 的 docker 主机上。我想要3层
- 网络
- 应用
- 数据库
network:我想在网络层有一个nginx容器,将请求路由到应用层的不同容器。我在这个 docker 容器中使用 1:1 端口映射将主机上的端口 80 暴露给容器。 Nginx 将使用直接请求到在端口 8001-8010 上运行的应用程序层中的适当应用程序
应用程序:我将有几个容器,每个容器运行一个单独的 django 应用程序,使用 Gunicorn 在端口 8001-8010 上运行
数据库:一个运行 MySQL 的容器,每个应用都有不同的数据库。 MYSQL 容器将有一个与之链接的数据卷以实现持久性。
我知道您可以链接容器。但据我了解,我认为它依赖于容器启动的顺序,即:当它们尚未启动时,如何将 nginx 链接到多个容器。
所以我的问题是
当应用程序中容器的数量/名称一直在变化时,如何将网络层连接到应用程序层。即:我可能会在线/离线带来一个新的应用程序。我将如何更新 nginx 配置以及寻址方式如何?
如何将应用层连接到数据库层?我必须使用 Docker 链接吗?在我的 Django 应用程序代码中,我需要使用数据库的主机名来连接。我会为我的 docker 容器的主机名添加什么?能解决吗?
有没有我可以利用的参考架构?
【问题讨论】:
标签: docker