【问题标题】:Volumes not mounting with docker-compose on docker toolbox for windowsWindows 的 docker 工具箱上未使用 docker-compose 安装卷
【发布时间】:2017-03-29 01:05:02
【问题描述】:

我最初为 Docker for Windows 配置了我的 docker 设置。一切都很好。我正在使用 docker-compose 定义 3 个容器,每个容器都有一个从我的 ./src(主机上的路径)映射到 /src/(容器上的路径)的卷。

我最近发现生产服务器可能有 Windows 10 Home,它不支持 Docker for Windows。所以,我的想法是我应该回到 docker toolbox 为这种情况做好准备。

所以我卸载了 Docker for Windows 并安装了 Docker 工具箱。我可以用docker-compose build 构建我的图像就好了,但是现在当我运行docker compose up -d 时,我的2 个容器会立即崩溃,因为/src/ 目录永远不会被挂载。

我可以通过运行docker exec -it ng01 bash 并查看卷目录存在但为空来验证卷没有被挂载。我的 2 位同事可以使用 docker 工具箱在他们的 Windows 机器上重现此问题。

有谁知道为什么会发生这种情况,或者如何解决它?我一直在看一堆类似的 SO 帖子,但各种解决方案让我无处可去。我将不胜感激。

Here 是我的 docker-compose 文件。

我的源代码在 src/.

我在 docker/ 中有我的 Dockerfiles

Here 是 hotloader.Dockerfile。 Here 是 web.Dockerfile。我认为它们不是问题,但我还是不妨分享一下。

提前谢谢你!

【问题讨论】:

  • 您的源项目文件夹在哪里?这是在您的 Windows 用户目录下吗? Docker Toolbox/Docker Machine 只将用户文件夹下的目录挂载到虚拟机中,详情请见github.com/docker/compose/issues/2548

标签: windows docker docker-compose docker-toolbox


【解决方案1】:

Docker Toolbox for Windows 通过设置一个名为 default 的 VirtualBox VM 来工作。运行任何 docker 命令将该命令转发到 VM(Windows 机器 → 虚拟机 → Docker)。 要将本地 Windows 文件夹挂载为 Docker 卷,首先需要将这些文件夹共享并挂载到运行 Docker 的 VM 上。 默认情况下,C:\Users 是共享的,因此从该位置安装卷无需任何配置即可工作。

因此,您可以将您的项目移动到这个已经共享的位置(C:\Users),也可以按照本文档中的步骤https://headsigned.com/posts/mounting-docker-volumes-with-docker-toolbox-for-windows/

希望这会有所帮助! :)

【讨论】:

  • 我不知道该怎么做才能完成这项工作,机器上没有 VirtualBox 管理器(我可以说,没有程序可以运行,或其他任何东西) - 我'我只安装了 Docker,而不是 VirtualBox,不知道他们在链接中编辑的配置文件是什么(这很旧)......我有 2 台运行 Windows Pro 的机器,我已经在两者上安装了目录和他们悄悄地没有挂载,升级的 Docker 重新启动了容器,我所有的数据都变了!
猜你喜欢
  • 1970-01-01
  • 2015-08-18
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多