macos - Docker 无法在 Mac OS 上挂载/var 下的任何文件夹

标签 macos docker docker-compose macos-catalina

我在 Mac os 10.15.3 上升级到最新版本的 docker 后。我再次遇到 Mounts denied 错误。

以下是版本:

Docker desktop: 2.2.0.3(42716)
Engine: 19.03.5
Mac osx: Catalina(10.15.3)
Docker compose: 1.25.4

我尝试将 /var/data/test:/var/data/test 挂载到 docker-compose 文件中。而我在File Sharing菜单中选择文件夹,结果是/private/var/data/test,无法编辑了。

如果我尝试运行 docker-compose up,总是会出现 Mounts denied 错误。

ERROR: for c9430ce45017_xxx-SNAPSHOT  Cannot start service xxx: Mounts denied:
The path /var/data/test
is not shared from OS X and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.

更新: 正如@tripleee 建议的那样,我将撰写文件编辑为 /private/var/data/test:/var/data/test,它有效。但它不能在 Linux 服务器上运行。

最佳答案

感谢@GordonDavisson 分享你的两分钱。

即使我无法通过 docker 桌面 GUI 放置 /var/data/test,我最终还是从命令行设置了共享文件目录。

GUI 中显示的共享文件夹列表也可以在 ~/Library/Group Containers/group.com.docker/settings.json 中编辑。

如果用户已经修改过共享文件夹,settings.json中已经存在“filesharingDirectories”数组,只需在json数组中添加路径即可。如果未修改,则该数组不会出现在 settings.json 中,但除了默认路径之外,您还可以将其添加到您的路径中:

"filesharingDirectories" : [
    "/Users",
    "/Volumes",
    "/private",
    "/tmp", 
    "/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
  ]

最终,应用需要重新启动,以便文件夹在 VM 中可见。

致谢link

最后,我将 /var/data/test 放在 settings.json 中,在重新启动 docker 后它就可以工作了。

关于macos - Docker 无法在 Mac OS 上挂载/var 下的任何文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60281263/

相关文章:

php - 在 MacOs Mojave 上找不到 XAMPP 的 httpd-xampp.conf 文件

c++ - 在 Mac OS 上使用 GCC 为 MS-DOS (DOSBox) 编译 C 程序

c - C语言中如何使用strxfrm?

docker - 在 ConEmu/Cmder 中使用 git-bash 加载 Docker 脚本

macos - mac 上的 emacs24 光标移动非常慢

node.js - Nginx 与 dockerized NodeJS

docker - 无法在Redhat7上升级Docker

azure - Docker 对 Azure 日志记录驱动程序的支持

docker-compose - 外部化 spring application.properties

ruby-on-rails - Docker Compose for Rails