据我所知,目前,Docker for Mac要求我决定预先将静态分配给运行的虚拟化Linux的内存和CPU内核。
这意味着即使Docker空闲,我的其他程序也会在(N-3)CPU内核和(M-3)GB内存上运行。正确?
这非常不理想!
在Linux中,它是理想的,因为容器只是另一个过程。所以它在容器启动和停止时使用和释放系统内存。
我的心理模型是否正确?
有一天,Docker for Mac或Windows 会动态分配 CPU和内存资源吗?
答案 0 :(得分:3)
这里的主要问题是,目前,Docker只能在Linux 上运行Linux容器。这意味着在OS X或Windows上,Docker在Linux VM中运行,并且它分配资源的能力受到正在使用的虚拟化软件提供的设施的限制。
当然,Docker本身可以在Windows上运行,只要你想运行Windows容器,并且在这种情况下可能更接近Linux"容器只是一个过程"模型。
可能这将在未来发生变化,但这就是现在的情况。
这意味着即使Docker处于空闲状态,我的其他程序也会在(N-3)个CPU内核和(M-3)GB内存上运行。正确?
我怀疑记忆是真的。我相信如果docker vm处于空闲状态,它实际上并没有占用CPU资源(也就是说,你没有将CPU专用于VM;相反,你正在设置vm有多少资源的最大限制可以消费)。