我最初为Docker for Windows配置了Docker设置。一切都很好。我使用docker-compose定义了3个容器,每个容器都有一个卷从我的./src(主机上的路径)映射到/ src /(容器上的路径)。
我最近发现生产服务器可能有Windows 10 Home,它不支持Docker for Windows。所以,我的想法是我应该回到docker工具箱为这种情况做好准备。
所以我卸载了Docker for Windows并安装了Docker工具箱。我可以使用docker-compose build
构建我的图像就好了,但现在当我运行docker compose up -d
时,我的两个容器会立即崩溃,因为/ src /目录永远不会被挂载。
我可以通过运行docker exec -it ng01 bash
验证卷是否未加载,并且看到卷目录存在但是为空。我的两个同事可以在带有docker工具箱的Windows机器上重现这个问题。
有谁知道为什么会这样,或者如何绕过它?我一直在看一堆类似的SO帖子,但各种解决方案让我无处可去。我很感激一些指导。
Here是我的docker-compose文件。
我的源代码在src /.
我在docker /
中有我的DockerfilesHere是hotloader.Dockerfile。 Here是web.Dockerfile。我不认为他们是问题,但我还是可以分享他们。
提前谢谢!
答案 0 :(得分:0)
用于Windows的Docker Toolbox通过设置名为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/
中的步骤进行操作希望这会有所帮助! :)