Seb*_*eth 5 docker windows-subsystem-for-linux
我在 WSL(Linux 的 Windows 子系统,Ubuntu 16.04)上使用 Docker 时遇到了最奇怪的情况。我试图将安装/home/username(或只是$HOME为了方便)绑定为容器中的卷,而不是在容器中查找我的主目录的内容,而是完全获得一些其他卷。
奇怪的是,每当我尝试绑定 mount$HOME或/home/username. 如果我是touch一个新文件,它会出现在我安装$HOME到的所有其他容器中。所有其他绑定安装到任何其他目录都可以正常工作。
例如,这些都共享同一个神秘文件夹:
docker run -it --rm -v /home/username:/test alpine sh
docker run -it --rm -v $HOME:/test alpine sh
docker run -it --rm -v $HOME:/test -v $HOME:/test2 alpine sh
Run Code Online (Sandbox Code Playgroud)
当我执行 a 时,docker volume ls没有名为 的卷/home/username,因此排除了意外拥有同名的 docker 托管卷的情况。
我正在安装的这个神秘卷是什么,为什么 docker 没有$HOME正确安装我的目录?
然后我必须显式地export HOME=/c/Users/rfay让 Windows 上的 Docker 守护进程可以访问它。但这确实有效。基本的魔力在于 WSL 中的路径必须是 Docker 守护进程可以在本机 Windows 中转换的内容。