我知道直接从Windows访问WSL Linux文件(位于%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
)不是一个好主意,但是这个建议是否也适用于在一个运行在Docker for Windows下的容器中将WSL路径作为卷安装?
例如,如果我首先在Windows上执行此操作:
mklink /j %USERPROFILE%\wsl %LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
然后在已配置Docker的WSL中执行此操作:
$ docker run --rm -v /c/Users/$USER/wsl/home/$USER/myapp:/myapp -ti ubuntu:18.04 bash
上面假定“/etc/wsl.conf”中必需的“root=/
”,并且用户在两个环境中都具有相同的名称。
我可以在“/myapp
”下的容器中看到我的文件就好了,但我不确定写入该路径是否安全。如果WSL和容器都运行Ubuntu,它是否更安全?
我更喜欢从WSL全职工作,我的主目录包含熟悉的Linux点文件。
只是为了踢,如果在WSL“$HOME/myapp
”中是“/c/myapp
”的符号链接怎么办?是的,我应该只是简单地使用-v /c/myapp:/myapp
,但是遍历rootfs路径真的很糟糕?
通过Windows上的Docker访问文件路径仍然使用Windows symantec来访问文件,因此您将使用WSL发行版实例进行bork。然而,最新的Windows Insider包含一个嵌入到专有/ init中的Plan9服务器,它允许从Windows通过网络共享访问Linux文件。见https://blogs.msdn.microsoft.com/commandline/2019/02/15/whats-new-for-wsl-in-windows-10-version-1903/
另一种方法是在同一个Windows主机(或另一个)或Linux主机上使用win-32 ssh中的ssh / scp。