0

Docker for Mac 有一个 GUI 界面,用于为托管容器的 Hypervisor 设置 cpu、ram 和 swap 值。通过打开 docker 菜单并转到 Preferences -> Advanced,可以看到所有 3 个设置。

此外,可以从docker info命令的输出中解析 cpu 和 ram 设置,但此处未列出交换信息。我也找不到任何其他 docker cli 实用程序输出 Docker for Mac 的交换设置信息。

您如何通过命令行工具获取此交换设置信息?

4

1 回答 1

0

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
于 2018-05-15T02:43:43.247 回答