据我所知,目前,Docker for Mac 要求我预先决定将多少内存和 CPU 核心静态分配给它运行的虚拟化 linux。
这意味着即使 Docker 处于空闲状态,我的其他程序也会在 (N-3) 个 CPU 内核和 (M-3)GB 内存上运行。对吧?
这是非常次优的!
在 Linux 中,这是理想的选择,因为容器只是另一个进程。因此它在容器启动和停止时使用和释放系统内存。
我的心智模型是否正确?
有一天 Docker for Mac 或 Windows 会动态分配 CPU 和内存资源吗?
最佳答案
这里的主要问题是,目前 Docker 只能在 Linux 上运行 Linux 容器。这意味着在 OS X 或 Windows 上,Docker 运行在 Linux VM 中,它分配资源的能力受到所用虚拟化软件提供的设施的限制。
当然,Docker 可以原生地运行在 Windows 上,只要你想运行 Windows 容器,在这种情况下可能更接近于 Linux 的“一个容器就是一个进程”的模型。
这有可能在未来会发生变化,但这就是目前的情况。
So that means that even when Docker is idle, my other programs will run on (N-3) CPU cores and (M-3)GB of memory. Right?
我怀疑内存力也是如此。我相信如果 docker vm 处于空闲状态,它实际上并没有在 CPU 资源方面使用太多(也就是说,您没有将 CPU 专用于 VM;相反,您正在设置 VM 可以消耗的资源数量的最大限制).
关于linux - Mac/Win 中的 Docker CPU/Mem 分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47947931/