2017-10-19 165 views
0

我想使用以下部署体系结构。如何使用Docker进行多层应用程序部署?

  • 一台机器上运行我的网络服务器(Nginx的)
  • 两台或多台计算机上运行uwsgi
  • PostgreSQL的我的另一台服务器上的数据库。

所有三个都在AWS上三个不同的主机上。在开发过程中,我使用了docker,并能够在我的本地机器上运行所有这三个。但我现在无能为力,因为我想将这三部分分成三个独立的主机并运行。任何指导,线索,参考将不胜感激。我最好希望使用docker来做到这一点。

回答

0

如果你确实坚持在单独的主机上保持服务分离,那么没有任何东西阻止你继续在安装Docker的EC2主机上使用你的容器来做nginx/uswgi,你甚至可以使用CoreOS AMI预安装好的安全Docker实例(https://coreos.com/os/docs/latest/booting-on-ec2.html)。

有关AWS RDS数据库使用PostgreSQL。

如果你正在运行的容器,你也可以看看AWS ECS这是亚马逊集装箱服务,这将是我最初的建议,但我看到你想要的所有这些服务是在单个主机。

+0

是的,我希望他们在单个主机上,但我无法找到任何教程或指导我如何做到这一点。 –

0

可以使用泊坞窗堆栈部署在群中的应用, 加入其他两台主机的工人,使用下面的选项 https://docs.docker.com/compose/compose-file/#placement deploy: placement: constraints: - node.role == manager

变化进行管理或者worker1或workern这将限制该节点的作用在单个主机上运行的服务。 如果你愿意,你也可以通过使用vpn来使这个更安全

+0

你的意思是我可以作为一个主机和作为经理的Web服务器和Uwsgi和数据库作为其他工作主机?纠正我,如果我错了,我觉得我是。 –

+0

是的,你是对的 – Vignajeth

+0

总之,我需要我的网络服务器主机上创建群,然后得到uwsgi和db主机加入这个群工人。现在他们将处于同一网络并应该工作。我需要在任何地方指定我的IP用于其他主机吗? –