0

我有一个 docker 映像,只有在有 6GB 可用 RAM 时才会运行。不幸的是,在 Windows 和 Mac 上,docker VM 默认限制为 2GB。您需要转到 Docker 高级设置来更改此设置。这是我不希望我的用户做的事情。

是否有更改此限制的 shell 命令(或 Windows 上的 Powershell 命令)?我宁愿告诉我的用户他们应该从终端运行一个命令,而不是让他们弄乱高级 Docker 设置。

4

1 回答 1

0

使用docker for windows, gui 设置存储在 中C:\Users\$YOUR_USER\AppData\Roaming\Docker\settings.json,也可以简化为~\AppData\Roaming\Docker\settings.json,在其中你会发现类似下一个:

{
    ......
    "memoryMiB": 2048,
    ......
}

使用的默认内存 hyper-v 机器是2048M,您可以将其更改为您需要的任何值,然后重新启动 docker 以满足您的要求。

您可以使用任何方法修改文件并根据需要重新启动 docker。接下来是一个示例 powershell 脚本供您参考:

a.ps1:

(get-content ~\AppData\Roaming\Docker\settings.json) | foreach-object {$_ -replace '"memoryMiB":.*', '"memoryMiB": 3072,'} | set-content ~\AppData\Roaming\Docker\settings.json

net stop docker
net stop com.docker.service
taskkill /IM "dockerd.exe" /F
taskkill /IM "Docker for Windows.exe" /F
net start docker
net start com.docker.service
& "c:\program files\docker\docker\Docker for Windows.exe"

在powershell中执行(注意:需要以管理员身份运行):

powershell.exe -File "C:\abc\a.ps1" -ExecutionPolicy Bypass

以上将运行a.ps1,它将更改内存值并重新启动 docker,之后,内存将正是您所需要的。您可以根据您计算机上的实际情况更改脚本中的某些路径。

于 2019-07-23T03:30:00.647 回答