首页 > 解决方案 > 使用osxfs的mac docker卷挂载不起作用

问题描述

Docker Desktop for Mac 开始osxfs用于支持 MacOS 上的卷挂载。根据他们的页面,这样的命令应该将~/Desktop目录挂载到 docker 容器:

docker run -it -v ~/Desktop:/Desktop r-base bash

尽管我确实看到了Desktop预期的目录,但它的内容是空的:

root@80cb534e4eeb:/# ls
bin  boot  Desktop  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@80cb534e4eeb:/# ls Desktop/
root@80cb534e4eeb:/# exit
exit 

虽然Desktop本地目录中肯定有文件

Users-MacBook-Pro:~ user$ ls Desktop/
Screen Shot 2019-03-25 at 10.34.58.png      Screen Shot 2019-03-25 at 22.26.10.png      Screen Shot 2019-03-27 at 07.34.55.png
Screen Shot 2019-03-25 at 10.35.59.png      Screen Shot 2019-03-25 at 22.26.11.png      Screen Shot 2019-03-28 at 15.14.48.png
Screen Shot 2019-03-25 at 22.26.08.png      Screen Shot 2019-03-25 at 22.47.32.png      Screen Shot 2019-04-05 at 09.26.12.png
Screen Shot 2019-03-25 at 22.26.10 1.png    Screen Shot 2019-03-27 at 07.34.33.png 

/Users目录应该可以根据“首选项”窗口访问。似乎 docker 配置有问题,但我还没有发现任何类似的问题报告。大多数相关问题osxfs都与 IO 性能有关。关于如何进一步解决/调查此问题的任何想法?

在此处输入图像描述

标签: macosdockermount

解决方案


偏好设置中的 Docker 出厂重置修复了该问题,但根本原因仍然未知。解决此类问题的一种方法是批量安装 Docker for mac 使用的 linux VM 的根目录并四处寻找。这可以通过以下方式完成:

docker run --rm -v /:/vm_root --entrypoint=sh alpine -c 'ls -l /vm_root/<path in macOS>'

推荐阅读