Docker 无法在 Mac OS 上的 /var 下挂载任何文件夹
Docker cannot mount any folder under /var on Mac OS
我在 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
菜单里选了ose文件夹,结果是/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 建议的那样,我将 compose 文件编辑为 /private/var/data/test:/var/data/test
,它可以工作。但它不会在 Linux.
的服务器上运行
感谢@GordonDavisson 分享你的两分钱。
即使我无法通过 docker 桌面 GUI 设置 /var/data/test
,我最终还是从命令行设置了共享文件目录。
GUI 中显示的共享文件夹列表也可以在 ~/Library/Group Containers/group.com.docker/settings.json
中编辑。
如果用户已经修改过共享文件夹,"filesharingDirectories"数组将已经存在于settings.json
中,您只需在json数组中添加路径即可。如果未修改,则数组不存在于 settings.json
中,但除了默认路径外,您还可以将其添加到您的路径中:
"filesharingDirectories" : [
"/Users",
"/Volumes",
"/private",
"/tmp",
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
]
最终,应用程序需要重新启动,以便文件夹在 VM 中可见。
致谢 link
最后,我把/var/data/test
放在settings.json
里,重启docker就可以了。
我在 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
菜单里选了ose文件夹,结果是/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 建议的那样,我将 compose 文件编辑为 /private/var/data/test:/var/data/test
,它可以工作。但它不会在 Linux.
感谢@GordonDavisson 分享你的两分钱。
即使我无法通过 docker 桌面 GUI 设置 /var/data/test
,我最终还是从命令行设置了共享文件目录。
GUI 中显示的共享文件夹列表也可以在 ~/Library/Group Containers/group.com.docker/settings.json
中编辑。
如果用户已经修改过共享文件夹,"filesharingDirectories"数组将已经存在于settings.json
中,您只需在json数组中添加路径即可。如果未修改,则数组不存在于 settings.json
中,但除了默认路径外,您还可以将其添加到您的路径中:
"filesharingDirectories" : [
"/Users",
"/Volumes",
"/private",
"/tmp",
"/usr/local/share/dotnet/sdk/NuGetFallbackFolder"
]
最终,应用程序需要重新启动,以便文件夹在 VM 中可见。
致谢 link
最后,我把/var/data/test
放在settings.json
里,重启docker就可以了。