thx到电晕–我们中的大多数人都在家工作,由于一些方便,我想使用在家中的Windows机器。
我确实在DockerDesktop 2.3.0.3版和Windows 19.03.8版上运行的引擎上运行Win10。 我正在做的是将docker deamon暴露在localhost上,以便从安装了Ubuntu的WSL(版本1,而非2)中使用它。 Docker本身可以工作,我可以提取图像并做一些基本的事情。但是我在安装卷时遇到了问题:-/
当我尝试运行docker-compose up命令时,它失败并显示以下错误:
ERROR: for my-service Cannot start service my-service: error while mounting volume '/var/lib/docker/volumes/someDir/_data': failed to mount local volume: mount /home/myUser/myLocalDirectory:/var/lib/docker/volumes/someDir/_data, flags: 0x1000: no such file or directory
目录/home/myUser/myLocalDirectory
确实存在。
目录/var/lib/docker/volumes/someDir/_data
在我的WSL“主机”上不存在。只有一个/var/lib/docker-engine/...
文件夹,这显然不是我要查找的文件夹:-/
我的工作路径是/mnt/e/projects/myDockerProject
-但我也试图安装/绑定文件夹/硬盘驱动器,如图所示here。
所有方法都不起作用,我真的很困惑-您有任何建议/解释吗?
答案 0 :(得分:0)
当我使用适用于Windows的Docker运行linux容器时,我绑定了挂载c:/the/windows/path:/desired/path/in/the/container
。
这里有很多层:
___ WSL
/
Windows
\___ Docker Linux VM -- Containers
在“正常”情况下(带有linux容器的linux主机),您绑定安装本地目录。在上图中,它对应于Docker Linux VM中的目录。但是Docker for Windows允许我们改为指定Windows路径。
当您将WSL放入混音中时,事情会变得更加混乱。在WSL中,/home
已经是某种魔术,没有显示直接链接到c
驱动器:
root@MyPcName:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 498557588 390255608 108301980 79% /
root 498557588 390255608 108301980 79% /root
home 498557588 390255608 108301980 79% /home
data 498557588 390255608 108301980 79% /data
cache 498557588 390255608 108301980 79% /cache
mnt 498557588 390255608 108301980 79% /mnt
none 498557588 390255608 108301980 79% /dev
none 498557588 390255608 108301980 79% /run
none 498557588 390255608 108301980 79% /run/lock
none 498557588 390255608 108301980 79% /run/shm
none 498557588 390255608 108301980 79% /run/user
cgroup 498557588 390255608 108301980 79% /sys/fs/cgroup
C:\ 498557588 390255608 108301980 79% /mnt/c
/home
显然对应于C:\Users
,但是您不能从df
的输出或/proc/mounts
或/etc/fstab
的内容中看出来。
我建议您尝试以下操作:
C:/Users/myUser/myLocalDirectory:/desired/path/in/the/container
/mnt/c/Users/myUser/myLocalDirectory:/desired/path/in/the/container
docker-compose up
,然后按照上面#1的方式使用Windows路径