【问题标题】:Limiting the docker daemon CPU resource限制 docker 守护进程 CPU 资源
【发布时间】: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


    【解决方案1】:

    你可以使用 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 在 rhel 上运行,它没有 GUI。
    • 正如我在回答中提到的,您可以将资源限制在您的 docker 机器上
    【解决方案2】:

    正如docker documentation 中指定的那样,您可以在运行时通过指定--cpus 标志来限制容器资源的使用。 docker info 命令正在返回机器上的 cpu 数量。

    要限制容器仅使用一个 cpu,请使用以下内容:

    docker run --cpus="1" ...
    

    【讨论】:

    • 是的,我已经将它用于运行命令中的容器,但我想限制它用于机器本身。
    【解决方案3】:

    在 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

    【讨论】:

      猜你喜欢
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 2021-10-27
      • 2022-07-16
      • 1970-01-01
      相关资源
      最近更新 更多