Docker for Mac 有一个 GUI 界面,用于为托管容器的 Hypervisor 设置 cpu、ram 和 swap 值。通过打开 docker 菜单并转到 Preferences -> Advanced,可以看到所有 3 个设置。
此外,可以从docker info
命令的输出中解析 cpu 和 ram 设置,但此处未列出交换信息。我也找不到任何其他 docker cli 实用程序输出 Docker for Mac 的交换设置信息。
您如何通过命令行工具获取此交换设置信息?
Docker for Mac 有一个 GUI 界面,用于为托管容器的 Hypervisor 设置 cpu、ram 和 swap 值。通过打开 docker 菜单并转到 Preferences -> Advanced,可以看到所有 3 个设置。
此外,可以从docker info
命令的输出中解析 cpu 和 ram 设置,但此处未列出交换信息。我也找不到任何其他 docker cli 实用程序输出 Docker for Mac 的交换设置信息。
您如何通过命令行工具获取此交换设置信息?
Docker for Mac 将设置存储在位于以下位置的 iso 文件中:~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/config.iso
.
如果 Docker for Mac 正在运行,此文件将被使用且无法挂载,hdiutil
因此建议使用以下命令序列来获取交换设置:
cp ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/config.iso /tmp/config.iso
# Mount the iso image
hdiutil mount /tmp/config.iso 2>&1 > /dev/null
# Parse the swap information from the config file (json format) using python
cat /Volumes/config/config | python -c "import sys, json; print json.load(sys.stdin)['swap']['entries']['size']['content']"
# Unmount the iso image
hdiutil eject /Volumes/config 2>&1 > /dev/null
rm /tmp/config.iso
注意:如果 Docker for Mac 未运行,则无需从原始位置复制 iso 文件,只需将其挂载到位即可。如果您在 Docker for Mac 运行时尝试将 config.iso 文件挂载到其原始位置,您将收到如下错误:
hdiutil: mount failed - Resource temporarily unavailable
输出示例如下:
2048M