Docker管理网站的最佳实践

时间:2017-07-27 12:29:31

标签: docker docker-machine

您认为在同一台计算机上运行多个网站的最佳做法是什么?您是否为每个网站/域设置了单独的容器?或者在一个容器中设置所有站点?

网站1,网站2,网站3:

  • nginx的
  • phpfpm
  • MySQL的

网站1:

  • nginx_1
  • phpfpm_1
  • mysql_1

网站2:

  • nginx_2
  • phpfpm_2
  • mysql_2

网站3:

  • nginx_3
  • phpfpm_3
  • mysql_3

3 个答案:

答案 0 :(得分:2)

我更喜欢为各个网站使用单独的容器,但使用单个网络服务器作为代理。这允许您访问相同主机端口(80/443)上不同域的所有网站。此外,您不一定需要运行多个nginx容器。

结构:

  • 代理
    • nginx(侦听端口80/443)
  • 网站1
    • phpfpm_1
    • mysql_1
  • 网站2
    • phpfpm_2
    • mysql_2
  • ...

您可以对代理服务(例如jwilder/nginx-proxy)使用自动配置生成,这样也可以使用方便的SSL认证处理,例如jrcs/letsencrypt-nginx-proxy-companionhttps://github.com/tessel/node-usb

代理服务可以如下所示:

  • 代理
    • nginx(侦听端口80/443)
    • docker-gen(基于正在运行的容器和服务创建nginx配置)
    • letsencrypt(如果需要,创建SSL证书)

答案 1 :(得分:1)

好吧,如果他们没有关系,我绝对不会把他们放在同一台机器上......

即使你有一个带有nginx和mysql的网站,我也会将这两者分开。它只是为您提供了更多的灵活性,而这正是Docker的全部意义所在。

祝你好运,与Docker玩得开心!

答案 2 :(得分:0)

我肯定会隔离每个应用程序。

为什么?

如果他们根本不相互依赖,那么在一个应用程序中进行更改会影响另一个应用程序只是因为它们在相同的环境中运行,并且您不希望所有这些更改都遇到问题一次。