我在 Windows 10 下使用 Ubuntu 作为客户端操作系统运行Windows 子系统 Linux (WSL)。现在我在 Windows 主机上安装了Docker Desktop,并在 Docker 设置中启用了 WSL 集成。到目前为止一切正常,我可以从我的 WSL Ubuntu 客户端访问在 Windows 主机上运行的 Docker 守护进程。
现在我想知道所有 Docker 卷和其他数据在此设置中存储在哪里。通常这些在 下/var/lib/docker,但在使用 WSL 时似乎并非如此。运行时,df -h我可以看到以下与 Docker 相关的行:
/dev/sdd 251G 3.1G 236G 2% /mnt/wsl/docker-desktop-data/isocache
/dev/sdc 251G 120M 239G 1% /mnt/wsl/docker-desktop/shared-sockets
/dev/loop0 244M 244M 0 100% /mnt/wsl/docker-desktop/cli-tools
Run Code Online (Sandbox Code Playgroud)
所以它们似乎在 Windows 主机上的某个地方。
... 但是哪里?
我刚刚将笔记本电脑中的Windows 10升级到Redstone 1.所以我测试了Linux子系统(Windows上的WSL,LXSS或Bash).基本上,一切都很好,但是存在一个问题,即WSL的RootFS位于%LocalAppData%路径(例如C:\Users\xyz\AppData\Local)中,这也是我的Windows操作系统所在的位置.它在我的笔记本电脑中消耗了大量的SSD硬盘空间,我希望我可以将它移动到我的外置硬盘.
还有一个问题.由于其他硬盘驱动器分区作为DriveFS安装,它不支持某些Linux文件系统功能chmod,并且我的一些Linux项目构建脚本仅适用于仅位于/和中的VoIFS /home.
所以我试图将整个WSL RootFS移动到另一个硬盘驱动器.首先,我试图制作一个NTFS Junction(硬链接)C:\Users\xyz\AppData\Local\lxss.我已经完全卸载了WSL并将mklinkRootFS 运行到另一个硬盘驱动器,当我再次重新安装WSL时,它无法创建新用户,并且它报告错误代码为0x80070003.
然后我四处搜索,我得到了这个:移动Linux文件系统 - 问题#449.似乎移动和制作WSL RootFS的硬链接仅在Windows 10 Build 14388之前有效,它在Windows 10 Build 14393 RTM中不起作用.唯一的办法是将整个移动%LocalAppData%到外部硬盘驱动器,但我不能这样做,因为我是一个笔记本电脑用户,我无法到处携带外置硬盘!
所以我想问一下,有没有其他方法可以将WSL移出我的系统分区?如果我不能做到这一点,我可以创建在其他一些地方的额外VoIFS工作目录和编译我的东西?
谢谢和问候,杰克逊
我有 Windows 10 并安装了 Docker Desktop。在他们更改商业使用条款后,我决定删除 Docker Desktop 安装并仅使用 docker 引擎本身(因为我没有使用 GUI)。我已经docker在 WSL 2 下安装在 Ubuntu 上并且工作正常:
localusr@MACHINE:~$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default * Current DOCKER_HOST based configuration unix:///mnt/wsl/shared-docker/docker.sock swarm
desktop-linux npipe:////./pipe/dockerDesktopLinuxEngine
Warning: DOCKER_HOST environment variable overrides the active context. To use a context, either set the global --context flag, or unset DOCKER_HOST environment variable.
localusr@MACHINE:~$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working …Run Code Online (Sandbox Code Playgroud) 如何解决“Docker Desktop - WSL 内核版本过低 [内容]”错误?
错误消息的其余部分:
Docker Desktop 需要更新的 WSL 内核版本。
通过运行“wsl --update”更新 WSL 内核,或按照https://docs.microsoft.com/windows/wsl/wsl2-kernel中的说明进行操作。
解决办法是:
wsl --update我已打开电脑并尝试启动 Docker Desktop。不幸的是,WSL 出现错误:
Docker Desktop - Unexpected WSL error
An unexpected error was encountered while executing a WSL command. Common causes include access rights issues, which occur after waking the computer or not being connected to your domain/active directory.
Please try shutting WSL down (wsl --shutdown) and/or rebooting your computer. If not sufficient, WSL may need to be reinstalled fully. As a last resort, try to install/reinstall Docker Desktop. If the issue persists please collect diagnostics and submit an …Run Code Online (Sandbox Code Playgroud) 在Windows 10上运行bash时,下面的简单语法在我通过SSH连接到我的网络服务器时起作用,但是当我退出并在我的本地机器上时则不行.它没有给我一个错误,但我可以看到权限不变.我必须检查我是否在计算机上设置为管理员.这是一个错误还是仅仅是本地操作系统是Windows的结果?如果是后者,它会让我质疑在Windows上使用bash的价值,如果这样的常见操作不起作用.
$chmod 644 filename
Run Code Online (Sandbox Code Playgroud) 我使用 WSL 运行 Windows 10。我在一台计算机上有所需的行为,但无法在其他地方复制。这是我所追求的:
我尝试过的事情:
eval $(ssh-agent), 后跟ssh-add; 它会记住密码,但如果我把它放在我的~/.bash_profile那么它会提示我输入每个新的控制台窗口,并且我打开了很多 - 其中许多我没有使用 git。git config --global credential.helper为cache或storebash.exe和wsl.exe得到git-credentials-manager.exe工作这是我放入我的内容的示例 ~/.gitconfig:
[credential]
helper = "/mnt/c/Program\\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"
我已经安装了git credential manager从这里并且还尝试了主要的 Git For Windows 安装作为替代。
我怎样才能鼓励它记住我的密码?
我在Windows程序上使用Ubuntu上的Bash来使用Emacs for C++.现在,我可以使用键盘快捷键对所有内容进行编码,但是,我想用鼠标选择文本或用鼠标设置标记,而不是总是使用我的键盘.
为了获得X Windows系统,我已经做了,sudo apt-get install xserver -xorg但emacs仍然在终端编辑器中运行.
我不知道使用什么其他命令或如何让X Windows开始运行.
我曾经用来"+y将文本复制到系统的剪贴板,但它在Windows上的Bash vim中不起作用.
我在 Windows 10 机器上使用 Ubuntu 18.04 作为 Linux 的 Windows 子系统。
我已经安装,gedit没有任何错误或警告。
但是每当我尝试使用该命令gedit something(这里有一个文件名)时,
我都会收到此错误:
Unable to init server: Could not connect: Connection refused
(gedit:48): Gtk-WARNING **: 21:03:26.729: cannot open display:
Run Code Online (Sandbox Code Playgroud)