如何在Docker中共享挂载?

14

我正在尝试在 Windows 10 上从 Debian 发行版中直接启动一个 Docker 项目,但出现了以下错误:

$ docker compose up -d
[+] Running 0/0
 ⠋ Container core_php74_1  Creating                                                                                                                            0.0s
Error response from daemon: path /home/me/path/to/project is mounted on / but it is not a shared mount.

如何将挂载路径 /home/me/path/to/project 转换为共享挂载?

2个回答

59

我在将docker for desktop更新到3.5.2(66501)后遇到了相同的错误。在我的docker-compose.yml中创建了带斜杠的卷。我删除了它们以修复问题。

更改

volumes:
  - ./:/app/
  - ./another/folder:/folder/
volumes:
  - ./:/app
  - ./another/folder:/folder

2
非常感谢 Colin 提供的有用修复。我按照你说的方法解决了这个问题。不知道为什么它只影响 Windows 10 上的 Docker Desktop 4.0.0 (67817),但在我的 Mac 上可以正常工作。 - userIndulgeInDChord
我只是想插一句话,我遇到了这个问题,原因是我试图使用/docker-entrypoint-initdb.d/:ro来填充我的MySQL数据库,但它无法自动运行我的数据库种子。删除/:ro对我解决了这个问题。 - Kyle Crossman
@KyleCrossman 你可以只删除末尾的 /,这样你的配置就是 /docker-entrypoint-initdb.d:ro:ro 表示只读。 - Colin Eininger
我只想报告这个问题发生在Win10 Docker桌面版4.2.0(70708)上。 - Edoardo

1
你不能将挂载点设置为根目录"/" 在Windows系统中,你的docker-compose.yml必须包含以下或类似的行:
volumes:
  - /home/me/path/to/project:/path/in/image

1
谢谢您的回答。但是这个配置只适用于Linux主机。因此,挂载本身应该是正确的。否则,在任何地方都无法启动容器。 - automatix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接