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

时间:2017-10-19 11:44:31

标签: postgresql docker nginx docker-swarm

我想使用以下部署架构。

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

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

2 个答案:

答案 0 :(得分:0)

如果你真的坚持在各个主机上保持服务分开,那么没有什么可以阻止你在Docker安装的EC2主机上使用你的容器nginx / uswgi,你甚至可以使用一个很好的CoreOS AMI安全的Docker实例预加载(https://coreos.com/os/docs/latest/booting-on-ec2.html)。

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

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

答案 1 :(得分:0)

你可以使用docker stack在swarm中部署应用程序, 将其他2个主机作为worker加入,并使用以下选项 https://docs.docker.com/compose/compose-file/#placement deploy: placement: constraints: - node.role == manager

将节点角色更改为manager或worker1或workern,这将限制服务在单个主机上运行。 如果你愿意,也可以使用vpn使这更安全