装载被拒绝:\r\n路径/a/b\r\n不是从OS X共享的,Docker不知道

装载被拒绝:\r\n路径/a/b\r\n不是从OS X共享的,Docker不知道,docker,docker-compose,docker-desktop,docker-ce,Docker,Docker Compose,Docker Desktop,Docker Ce,在mac上,/a/b具有以下权限: $ ls -l /a/b total 0 drwxrwxrwx 2 root wheel 64 13 Jan 08:50 b $ whoami user1 $ 下面是要从docker容器装载/a/b的docker compose文件: version: '2' services: someapp: build: context: . args: DOCKER_GID: ${DOCKER_GID}

在mac上,
/a/b
具有以下权限:

$ ls -l /a/b
total 0
drwxrwxrwx  2 root  wheel  64 13 Jan 08:50 b
$  whoami
user1
$

下面是要从docker容器装载
/a/b
的docker compose文件:

version: '2'

services:
  someapp:
    build:
      context: .
      args:
        DOCKER_GID: ${DOCKER_GID}
        DOCKER_VERSION: ${DOCKER_VERSION}
        DOCKER_COMPOSE: ${DOCKER_COMPOSE}
    volumes:
      - /a/b:/var/some_mount
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "8080:8080"

在运行
docker compose up-d someapp
时,我看到以下错误:

ERROR: for docker-folder_someapp_1  Cannot start service someapp: b'Mounts denied: \r\nThe path /a/b\r\n is not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'

ERROR: for someapp  Cannot start service someapp: b'Mounts denied: \r\nThe path /a/b\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'
ERROR: Encountered errors while bringing up the project.

当我使用文件共享选项将
/a/b
添加到现有列表时,请按照说明进行操作:

我得到另一个错误弹出窗口:
导出路径/Users/user1/Documents/:a/:a:b与导出/用户重叠


另一个观察是,在MacOS上安装docker,使用VMWare运行docker,与ubuntu不同:

$ ps -eaf | grep docker
    0 11100     1   0  9:02am ??         0:00.07 /Library/PrivilegedHelperTools/com.docker.vmnetd
1873530912 11108 11038   0  9:02am ??         0:01.45 /Applications/Docker.app/Contents/MacOS/com.docker.supervisor -watchdog fd:0

在Ubuntu中运行docker守护进程时,我没有看到这样的装载拒绝问题

(一)

如何将docker主机的路径(
/a/b
)装载到docker容器的(
/var/some_mount
)?在马科斯

(二)


是否需要docker主机进行显式文件共享,因为在MacOS上安装docker会使docker主机在VMWare上运行,而docker客户端在MacOS上运行

那么
/a/b
是否在您的
/Users
目录中?如果您
chown
登录会发生什么情况?@leeman24我改为
drwxrwx 2 user1 wheel 64 Jan 08:13/50/a/b
。我仍然看到同样的问题。没有按名称分组
user1
,因此我不确定您希望此路径使用的组名是什么?它可能是mac quirk上的Docker。您应该考虑将文件夹从用户目录中的某个地方安装。我觉得/文件夹可能受到了保护。@leeman24您还可以检查我的查询编辑吗?我真的很无聊,重新创建了您的场景。我创建了文件夹
/a/b
,它仍然属于
root:wheel
。复制了装载拒绝错误。但是,当我尝试在docker设置中共享文件夹
/a/b
时,它成功了。那么
/a/b
是否在您的
/Users
目录中?如果您
chown
登录会发生什么情况?@leeman24我改为
drwxrwx 2 user1 wheel 64 Jan 08:13/50/a/b
。我仍然看到同样的问题。没有按名称分组
user1
,因此我不确定您希望此路径使用的组名是什么?它可能是mac quirk上的Docker。您应该考虑将文件夹从用户目录中的某个地方安装。我觉得/文件夹可能受到了保护。@leeman24您还可以检查我的查询编辑吗?我真的很无聊,重新创建了您的场景。我创建了文件夹
/a/b
,它仍然属于
root:wheel
。复制了装载拒绝错误。但是,当我尝试在docker设置中共享文件夹
/a/b
时,它成功了。