如何使用Docker进行多层应用程序部署?

我想要使​​用以下部署体系结构。

  • 一台机器运行我的networking服务器(nginx)
  • 两台或多台运行uwsgi的机器
  • Postgresql作为我的数据库在另一台服务器上。

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

如果你确实坚持在单独的主机上保持服务的独立性,那么在Docker安装的nginx / uswgi的EC2主机上仍然没有使用你的容器,你甚至可以使用CoreOS AMI,它带有一个很好的安全的Docker实例预先加载( https://coreos.com/os/docs/latest/booting-on-ec2.html )。

对于数据库,请使用AWS RDS上的PostgreSQL。

如果你正在运行容器,你也可以看看亚马逊容器服务的AWS ECS,这将是我最初的build议,但是我看到你希望所有这些服务都在单独的主机上。

您可以使用docker stack来部署swarm中的应用程序,将其他两台主机作为workerjoin,并使用下面的选项https://docs.docker.com/compose/compose-file/#placement deploy: placement: constraints: - node.role == manager

将节点angular色更改为pipe理员或worker1或workern,这将限制服务在单个主机上运行。 如果你愿意的话,你也可以通过使用vpn来提高安全性