Mac版Docker 17.12.0-ce-mac46虚拟机文件系统只读,无法修改交换空间求助
解决Docker for Mac 17.12.0-ce-mac46只读文件系统下修改交换空间的问题
我之前在这个版本也踩过同样的坑,老方法因为虚拟机文件系统只读确实用不了了,给你两个亲测有效的方案:
方案一:通过Docker Desktop UI直接配置(最简便)
这个版本的Docker Desktop其实已经内置了交换空间的可视化配置,不用折腾命令行:
- 点击顶部状态栏的Docker图标,选择 Preferences(偏好设置)
- 切换到 Advanced(高级)标签页
- 在Swap区域,拖动滑块或者直接输入你需要的交换空间大小(比如4GB)
- 点击 Apply & Restart,Docker会自动重启并应用新的交换空间设置
方案二:修改虚拟机配置文件(UI找不到选项时用)
如果你的Docker Desktop没有Advanced标签页,或者UI配置不生效,可以直接修改虚拟机的配置文件:
- 关闭Docker Desktop,确保它完全退出
- 打开终端,进入Docker配置目录:
cd ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/ - 编辑
config.json文件(用你熟悉的编辑器,比如nano):nano config.json - 找到或添加
"swap"字段,设置为你需要的字节数(比如4GB就是4294967296),示例配置:{ "cpus": 2, "memory": 2147483648, "swap": 4294967296 } - 保存文件后,重新启动Docker Desktop即可
临时生效方案(仅用于测试,重启后失效)
如果只是临时需要调整交换空间,不想修改永久配置,可以这样操作:
- 进入Docker虚拟机终端:
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty - 输入
root登录(无需密码) - 创建并启用swap文件(这里以4GB为例):
dd if=/dev/zero of=/var/swap.file bs=1G count=4 chmod 600 /var/swap.file mkswap /var/swap.file swapon /var/swap.file - 验证是否生效:
swapon --show,能看到/var/swap.file的信息就说明成功了 - 退出虚拟机终端:按
Ctrl+A再按Ctrl+D
为什么老方法失效?
17.12.0-ce-mac46版本开始,Docker for Mac把虚拟机的文件系统改为只读模式,目的是提升整体稳定性和安全性,所以直接修改/etc/fstab这类系统文件会触发只读错误,官方推荐用UI或配置文件的方式来调整资源参数。
内容的提问来源于stack exchange,提问作者Anfernee
相关产品推荐
相关产品推荐

