如何通过命令行获取为Docker for Mac配置的交换空间?

时间:2018-05-15 02:43:43

标签: docker docker-for-mac

Docker for Mac有一个GUI界面,用于设置托管容器的Hypervisor的cpu,ram和swap值。通过打开泊坞窗菜单并转到首选项 - >可以看到所有这三个设置。高级。

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

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

1 个答案:

答案 0 :(得分:0)

Docker for Mac将设置存储在位于~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/config.iso的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