linux - Mac/Win 中的 Docker CPU/Mem 分配

标签 linux docker virtual-machine docker-for-windows docker-for-mac

据我所知,目前,Docker for Mac 要求我预先决定将多少内存和 CPU 核心静态分配给它运行的虚拟化 linux。

enter image description here

这意味着即使 Docker 处于空闲状态,我的其他程序也会在 (N-3) 个 CPU 内核和 (M-3)GB 内存上运行。对吧?

这是非常次优的!

在 Linux 中,这是理想的选择,因为容器只是另一个进程。因此它在容器启动和停止时使用和释放系统内存。

  1. 我的心智模型是否正确?

  2. 有一天 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/

相关文章:

google-cloud-platform - 在 Google Cloud VM 上运行 Jupyter Notebook 时出现 SSL 错误

linux - 将文件添加到 tar 时,tar 会在命令中途覆盖自身

c - epoll_wait返回怎么样?它是否对所请求的 I/O 的文件描述进行排序?

tomcat - Docker Compose - 使用卷在 tomcat 上运行 java web 应用程序(war 文件)

git - 无法在Docker容器中找到软件包

linux - VMware和Linux屏幕调整

mysql - 从转储加载 mysql 数据库需要很长时间

linux - 运行简单 shell 脚本时出错

linux - 配置 rsyslog 以记录所有命令

docker - 在 CentOS docker 容器中添加虚拟网卡