gpt4 book ai didi

linux - Docker 容器对 memcached 实例有什么好处?

转载 作者:IT老高 更新时间:2023-10-28 21:26:59 27 4
gpt4 key购买 nike

其中一个 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,一切都只是一个以 run 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 分成小块而不是全局。 (即假设您想将 20% 的缓存用于缓存用户,将 40% 的缓存用于缓存文件等)

此外,大多数分片方案都难以扩展,因此人们通常从许多“虚拟”分片开始,然后在需要时扩展到物理分片。因此,您可能会从您的应用开始了解大约 20 个 memcached 实例(根据对象 ID 选择)。起初,所有 20 个都运行在一个物理服务器上。但后来您将它们拆分到 2 个服务器 (10/10),然后拆分到 5 个服务器 (4/4/4/4),最后拆分到 20 个物理服务器(每个服务器 1 个内存缓存)。因此,您只需移动虚拟机而不更改您的应用,就可以将您的应用扩展 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 进程一样。 (如果一个填满内存,两个都会出现内存不足的错误。)

关于linux - Docker 容器对 memcached 实例有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17934328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com