【问题标题】:What is the best Docker architecture with php, AngularJS, Nginx, Mysqlphp、AngularJS、Nginx、Mysql 最好的 Docker 架构是什么
【发布时间】:2019-02-04 18:45:34
【问题描述】:

我有一个 AngularJS/PHP7/MySQL 应用程序,我想改进它的架构。实际上,它目前在单独的 docker 容器中运行。

  • 分别使用 Angular JS 和 PHP 创建一个用于前端和后端的容器。
  • 一个数据库容器

我想改进此设置并实现以下目标:

  • 一个带有 NGINX 的容器:端口 80、443
  • 一个带有节点的容器和我的 AngularJS 前端:端口 4200
  • 一个容器 apache(或 php fpm ?)与我的后端 PHP:端口 81
  • 一个装有 MySQL 的容器:端口 3306

更广泛地说,将正面和背面分开是一件好事吗?对于以后的缩放问题?我将使用什么样的工具来解决这些缩放问题? Docker Swarm、Kubernetes?

我不知道这是否是一个好方法。你能帮我为这个应用程序选择正确的路径吗? (对不起我的英语,我不是本地人)。谢谢!

【问题讨论】:

    标签: php angularjs docker nginx


    【解决方案1】:

    我认为您需要先开始研究 Docker Compose 基础知识,而不是尝试直接深入部署。这将帮助您了解如何部署多容器应用程序及其背后的基本思想。根据您的场景,docker-compose 允许您定义您的 NGINX 容器、Angular JS 容器(您的前端)、PHP(您的后端)和您的 MySQL DB 容器,它们运行的​​端口,还定义您的覆盖网络可以明智地分离容器。请参阅下面的资源,在第 3 个链接中,您还可以访问 Docker Compose 文件,该文件定义了与您当前设置完全相同的配置,在您了解基础知识后参考它。

    Docker Compose Official Documentation

    How to use Docker Compose

    Sample Docker Compose File

    当涉及到 Docker Swarm 和 Kubernetes 时,它们都是容器编排平台。这两者都允许您在集群中运行容器,这意味着您可以复制运行每个服务的容器数量(这里的服务是指您的一个容器,即 NGINX 容器)以使它们具有高可用性。想象一下,您的一个 NGINX 容器发生故障,并且您已定义在 Docker Swarm 或 Kubernetes 集群上运行 3 个 NGINX 容器,并且您的用户不会受到影响,尽管您的一个 NGINX 容器已关闭,因为还有另外两个容器正在运行。 Docker Swarm 和 Kubernetes 之间存在一些差异,在您掌握了这些基础知识后,由您决定使用什么工具。如果您从 docker-compose 开始,进入 Docker-Swarm 会有点容易。

    Difference between Docker Swarm and Kubernetes

    我还添加了一个答案,解释如何在像您这样的场景中使用 Docker Swarm,阅读它,以便您了解如何使用 Docker Swarm 部署您的应用程序。

    My Answer on Docker Swarm Use case

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 2020-08-03
      相关资源
      最近更新 更多