nginx – 启动adhoc docker实例:是否建议每个请求启动一个docker实例?
作者:互联网
是否建议每个请求启动一个docker实例?
我在我的Web服务器上运行lighttpd或Nginx作为反向代理.我支持一些使用率很低的子域名.当子域的请求到达时,我想启动docker实例.我希望动态启动它们,这样如果有多个用户到达我将为每个用户启动一个…和/或共享实例(由配置确定)
解决方法:
最初我说这应该适用于低流量网站,但进一步想,不,这是一个坏主意.
每次启动Docker容器时,它都会向图像添加读写层.即使写入的数据非常少,该层也存在,每个请求都会生成一个.当单个用户访问网站时,呈现页面将生成10到1000的请求,CSS,javascript,每个图像,字体,AJAX,并且每个用户都会创建这些读写层.
现在没有自动清理读写层 – 即使在Docker容器退出后它们仍然存在.默认情况下,不会丢失任何内容
因此,即使对于单个低流量站点,您也会发现随着时间的推移,您的磁盘使用量会稳步增长.您可以添加自己的自动清理.
然后是第二个问题:除非将其写入某些容器外共享存储,否则上传到网站的任何内容都无法用于任何其他请求.使用S3或单独的持久数据库服务这很容易,但它确实开始显示“每个请求一个新的Docker容器”方法的弱点.如果您要拥有一些持久性服务,为什么不让Docker容器更持久并运行更长时间呢?
标签:nginx,docker,lighttpd 来源: https://codeday.me/bug/20190625/1283591.html