首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解Docker最佳实践并运行and服务器

了解Docker最佳实践并运行and服务器
EN

Stack Overflow用户
提问于 2016-10-11 13:56:33
回答 1查看 259关注 0票数 3

我在一个容器中运行一个简单的PHP7.0、Redis和NGINX服务器。

这意味着我将php7.0-fpmngxinxredis作为服务运行。

但在我所读到的最佳实践中:

代码语言:javascript
复制
# Run only one process per container
In almost all cases, you should only run a single process in a single container.
Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers.
If that service depends on another service, make use of container linking.

这是否意味着最好用PHP7.0和应用程序运行一个容器,用nginx运行另一个容器,用redis运行另一个容器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-11 15:28:25

@nwinkler在评论中是对的,推荐是有益的。将应用程序解耦到多个容器的两个优点是:

  1. 构建时间

的确,如果没有发生任何更改,那么docker会进行散列检查,并且不会构建映像的层,但这仅限于层结构(如果层X更改,则X之上的所有层都将生成)。这意味着当你的图像开始变大时,它会开始变得痛苦。

  1. 容器是隔离的

当您连接到您的ngxinx时,您非常肯定您正在做的任何更改不会导致您的php容器中的更改,这始终是一个很好的实践。

  1. 可伸缩性

您还需要10个Redis,很好,让我们再运行10个Redis容器。

通常,我会为任何场景选择一个基本映像的dockerfile,在您的例子中,这是您的所有三个容器(phpredisnxginx)共享的东西(第三方库、工具等等)。然后用三个码头文件来构建每个图像。然后是一个用于在容器中运行映像的bashdocker-compose.yml脚本。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39978962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档