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

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

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

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

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

# 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中运行另一个容器?

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

>建立时间

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

>容器是隔离的

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

>可扩展性

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

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

猜你在找的Docker相关文章