linux – 对于memcached实例,Docker容器有什么好处?

其中一个Docker示例适用于配置了Memcached的容器.我想知道为什么人们会想要这个与配置Memcached的VM相比?我猜测在同一主机下运行多个memcached docker容器是没有意义的,唯一真正的优点是在docker容器中“压缩”memcached堆栈与通过VM在Memcached中“快速” .它是否正确?

另外,如何设置docker容器中memcached使用的内存?如果在一个主机下有两个或更多具有Memcached的docker容器,这将如何工作? (我再假设两个或两个以上没有意义).

最佳答案

I’m wondering why one would want this versus a VM configured with Memcached?

安全性:如果有人破坏了memcached和特洛伊木马的文件系统,那没关系 – 当你开始一个新的memchached时,文件系统会被丢弃.

隔离:您可以对每个容器进行硬限制,以防止它使用太多RAM.

标准化:目前,每个应用程序/数据库/缓存/负载均衡器必须记录要安装的内容,配置内容和运行内容.没有标准(并且没有木偶,厨师等工具).但是这些工具非常复杂,并非真正独立于操作系统(尽管他们声称),并且从开发到部署都具有相同的复杂性.

使用docker,一切都只是一个以BLAH运行的容器.如果你的应用程序有5层,你只需要运行5个容器,顶部有一点编排.开发人员永远不需要“查看容器”,除非他们在该层开发.

资源:您可以在普通的PC上启动1000个docker容器,但是您可能无法启动100个VM.限制是CPU和RAM. Docker容器只是“增强型”chroot中的进程.在VM上,有许多后台进程(cron,logrotation,syslog等),但是docker没有额外的进程.

I’m guessing that it would make no sense to have more than one memcached docker container running under the same host

这取决于.在某些情况下,您希望将RAM拆分为parcel而不是全局. (想象一下,如果你想将20%的缓存用于缓存用户,将40%的缓存用于缓存文件等)

此外,大多数分片方案很难扩展,因此人们通常从许多“虚拟”分片开始,然后在需要时扩展到物理盒.因此,您可以从您的应用程序开始,了解大约20个memcached实例(根据对象ID选择).首先,所有20个在一台物理服务器上运行.但是后来你将它们分成2台服务器(10/10),然后分成5台服务器(4/4/4/4),最后分成20台物理服务器(每台1台memcached).因此,您可以通过移动虚拟机而不是更改应用来扩展您的应用20倍.

the only real advantage is speed advantage of “spinning up” the memcached stack in a docker container vs Memcached via a VM. Is this correct?

不,这只是一个小小的好处.往上看.

Also,how does one set the memory to be used by memcached in the docker container?

在docker run命令中,只需使用-m.

How would this work if there were two or more docker containers with Memcached under one host? (I’m assuming again that two or more would not make sense).

同样的方式.如果没有设置内存限制,那就像在主机上运行2个memcached进程一样. (如果填满内存,两者都会出现内存错误.)

相关文章

前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、...
在192.168.80.100要联网关闭防火墙及SElinuxsystemctlstopfi...
Redis与Memcache对比:1.Memcache是一个分布式的内存对象缓存...
安装Mencache:关闭防火墙及SElinuxsystemctl  stop  fi...
#安装php的yaf模块,参考https://www.cnblogs.com/shifu204/...
win10下安装配置apache、php、mysql、redis、memcache资源官...