【发布时间】:2018-03-17 20:21:34
【问题描述】:
当我执行docker info 时,它会给我以下结果:
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 2
Total Memory: 7.632 GiB
但我希望 cpu 为 1 而不是 2。如何限制 docker 本身的 CPU?
【问题讨论】:
标签: docker cpu-usage docker-machine
当我执行docker info 时,它会给我以下结果:
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 2
Total Memory: 7.632 GiB
但我希望 cpu 为 1 而不是 2。如何限制 docker 本身的 CPU?
【问题讨论】:
标签: docker cpu-usage docker-machine
你可以使用 docker machine 将资源限制到 docker。换句话说,您可以限制从您的 VM 提供者本身分配给虚拟机本身的资源。
创建一个新的 docker 机器并指定它的配置:
docker-machine create -d virtualbox --virtualbox-memory=4096 --virtualbox-cpu-count=2 --virtualbox-disk-size=50000 nameOfYourMachine
要修改当前的,您可以使用Virtualbox 附带的VBoxManage,首先停止VM,更改设置并重新启动它。
docker-machine stop
VBoxManage modifyvm default --cpus 1
VBoxManage modifyvm default --memory 4096
docker-machine start
在您有 GUI 的 Mac 或 Windows 中,您可以从 Preferences 或 Settings 菜单轻松限制 docker 资源 CPU/内存,如下所示。
【讨论】:
正如docker documentation 中指定的那样,您可以在运行时通过指定--cpus 标志来限制容器资源的使用。
docker info 命令正在返回机器上的 cpu 数量。
要限制容器仅使用一个 cpu,请使用以下内容:
docker run --cpus="1" ...
【讨论】:
在 windows 上,打开 powershell 并输入
# turn off all wsl instances such as docker-desktop
wsl --shutdown
notepad "$env:USERPROFILE/.wslconfig"
用记事本编辑.wslconfig文件并记下这些设置:
[wsl2]
memory=3GB # Limits VM memory in WSL 2 up to 3GB
processors=2 # Makes the WSL 2 VM use two virtual processors
在PowerShell中输入wsl
重启泊坞窗
输入docker info,你应该会看到类似
Architecture: x86_64
CPUs: 2
Total Memory: 6.789GiB
感谢 Ali Bahraminezhad,查看他的帖子 here
【讨论】: