内存消耗也像Docker容器的CPU一样是dynamic的

我想通过在CPU和内存上提供限制来在单个主机上运行多个容器。 如果我的主机有1024个CPU的份额,我把它们分配为512和512到两个容器,这意味着如果第二个容器不使用任何CPU,第一个容器可以多达1024个。 但是,如果他们都使用CPU,那么都限制为512。

内存使用情况也是如此吗? 或者不知怎的,我可以这样设置? 这里是场景:我有1024 Mb的RAM可用于容器,我有两个容器,我希望每个容纳512 Mb的RAM,但如果其他容器不使用它,应该能够扩展到超过512。 这怎么可能?

在内存的情况下,您向Docker提供以字节,千字节,兆字节为单位的固定内存量(以及交换),并且该数量将限制容器可以分配的内存,而不pipe主机是否具有内存空间或如果它正在被其他进程使用。

在限制内存时,重要的是注意Docker(或cgroup)如何限制容器的内存和交换。 从Docker v1.5(并在v1.6中修复),Docker可以独立限制内存和交换。 查看Docker文档来获取更多关于这个的细节。