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

前端之家收集整理的这篇文章主要介绍了了解Docker最佳实践并运行Web服务器 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我处于在单个容器中运行简单的PHP7.0,Redis和Nginx服务器的情况.

这意味着我将PHP7.0-fpm和ngxinx和redis作为服务运行.

但是在最佳实践中,我正在阅读:

  1. # Run only one process per container
  2. In almost all cases,you should only run a single process in a single container.
  3. Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers.
  4. If that service depends on another service,make use of container linking.

这是否意味着最好在PHP7.0和应用程序中运行一个容器,而在Nginx和Redis中运行另一个容器?

最佳答案
@nwinkler在评论中是正确的,推荐是好的.将应用程序解耦到多个容器中的几个优点是:

>建立时间

的确,如果未发生更改,则docker会进行哈希检查并且不构建映像的层,但这仅限于层结构(如果X层发生更改,则将构建X之上的所有层).这意味着当图像开始变大时,它将开始变得痛苦.

>容器是隔离的

当您连接到ngxinx时,您可以确定您所做的任何更改都不会引起PHP容器中的更改,并且这始终是一个好习惯.

>可扩展性

您还需要十个Redis,好的,让我们再运行十个Redis容器.

通常,在任何情况下,我都会为基础映像选择一个dockerfile,在您的情况下,这就是您的三个容器(PHP,redis和nxginx)共享的所有容器(第三方库,工具等).然后三个dockerfile用于构建每个映像.然后是bash或docker-compose.yml脚本,用于在容器内运行图像.

猜你在找的Docker相关文章