2

我最初为 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 帖子,但各种解决方案让我无处可去。我会很感激一些指导。

是我的 docker-compose 文件。

我的源代码在 src/.

我在 docker/ 中有我的 Dockerfile

这里是 hotloader.Dockerfile。 是 web.Dockerfile。我不认为它们是问题,但我还是可以分享它们。

先感谢您!

4

1 回答 1

0

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 -视窗/

希望这可以帮助!:)

于 2019-10-10T10:34:00.500 回答