*我用特定的 cpu 在 docker 中启动 linux 容器 *
在我的容器中键入命令'cat /proc/cpuinfo,容器显示笔记本电脑的完整规格,而不仅仅是容器。为什么这会发生?
LXC 不提供虚拟化内核——内核在主机和所有容器之间共享。因此,当您查看/proc
文件系统时,您(通常)会看到内核看到的内容,而不是容器的限制。
你可以限制你的容器在特定的 CPU 上运行,但我不知道有什么方法可以让你的容器认为系统上没有其他 CPU。
以类似的方式,top
在容器中运行将显示主机上可用的完整 RAM,即使您限制了容器的内存。
我不知道容器学习其自身限制的方法,但您可以从主机收集许多指标。见http://blog.docker.io/2013/10/gathering-lxc-docker-containers-metrics/
当我们进行操作系统级虚拟化时,操作系统的内核允许多个隔离的用户空间实例。我们可以根据您的要求为每个容器分配内存和 CPU。这可以在运行时或容器创建后完成。从逻辑上讲,所有用于创建配置文件的虚拟化工具都会处理内存和 CPU 使用情况。
您现在可以使用 -c 选项为容器分配一定数量的 CPU 份额,如此处所述