我无法重新启动 wsl2,命令 wsl --shutdown 和任何其他 wsl 命令永远挂起。我还发现处于停止状态的服务 LxssManager 也永远挂起。
如何重新启动 wsl ?
我的 Windows 10 笔记本电脑上运行着 WSL 版本 2。我使用的是 WSL 发行版 Ubuntu-20.04。当我连接到 VPN 网络时,域名解析不起作用,因此我无法访问 Internet。
使用的 VPN 客户端是“Cisco AnyConnect 安全移动客户端”
我尝试了以下步骤来解决此问题。
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
reboot
Run Code Online (Sandbox Code Playgroud)
这一次有效,我可以访问互联网。但当我断开VPN连接并再次连接时,我又遇到了同样的问题。我尝试再次执行命令并重新启动,但现在不再起作用了。
什么是永久解决此问题的方法?
这是我的设置:
Windows 10 PRO - build 19041.153
- 内部程序 - 慢环Ubuntu 18.04LTS
WSL2 模式下的子系统Docker for desktop 2.2.0.4
- 启用与我的 Ubuntu 子系统的 WSL2 集成我目前被迫使用Windows进行开发,所以我成为了microsoft Insider成员并以WSL2模式安装了ubuntu。Docker 桌面支持 WSL2 的集成,所以我尝试了......一周以来它完美无缺。今天电脑重启后,我无法再次运行docker。Ubuntu 可以看到从 Docker 桌面注入的二进制文件,但它无法再连接到 Windows 托管的 docker 守护进程。
当我调用 subsys 终端时,docker info
它返回
$ docker info
Client:
Debug Mode: false
Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
errors pretty printing info
Run Code Online (Sandbox Code Playgroud)
或与 docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localhost …
Run Code Online (Sandbox Code Playgroud) docker windows-subsystem-for-linux docker-desktop docker-daemon wsl-2
我在 WSL2 上使用 Ubuntu(不是在 Docker 桌面上)。
\n根据如何修复 docker \xe2\x80\x98Cannot connect to the Docker daemon at unix:///var/run/docker.sock。Ubuntu 上的 docker 守护进程是否正在运行?\xe2\x80\x99,我可以在启动时自动启动 docker 守护进程
\nsudo systemctl enable docker\n
Run Code Online (Sandbox Code Playgroud)\n而不是在每次启动时重新启动它
\nsudo systemctl start docker\n
Run Code Online (Sandbox Code Playgroud)\n这两个命令都避免了“无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护进程。docker 守护进程正在运行吗?”。
\n当使用两者中的任何一个时,我得到
\n\n\n使用 \n/lib/systemd/systemd-sysv-install 将 docker.service 的状态与 SysV 服务脚本同步。执行:\n/lib/systemd/systemd-sysv-install 启用 docker
\n
测试运行显示,docker 尚未运行:
\n\n\nRun Code Online (Sandbox Code Playgroud)\ndocker run hello-world \n
docker:无法连接到 \nunix:///var/run/docker.sock 处的 Docker 守护程序。docker 守护进程是否正在运行?请参阅\n\'docker run --help\'。
\n
之前的一些步骤,此时我也收到了不同的消息:
\n\n …
我最近将我的 Windows 10 版本更新到了2004版。我还将 WSL 更新为 WSL2。
我在尝试通过 VirtualBox 6.1.8使用虚拟机(Windows 10 主机/Windows 10 来宾)时遇到问题。每次我尝试启动它时,它都会变得非常慢,并且无法通过启动加载屏幕。
我认为最新版本的 VB 解决了这个问题(根据Microsoft 的这个文档)。
我能做些什么来解决这个问题?
我已经在我的 Windows 机器上安装了 wsl2,但我无法弄清楚文件的实际存储位置。
请注意,我并不是说我想在文件资源管理器中浏览它们 - 我知道这可以通过在资源管理器中输入来完成\\wsl$\
。
如果我不得不猜测,我会说文件存储在与操作系统存储相同的硬盘驱动器中。
所以实际上我有两个相关的问题。
编辑:
我能够找到安装路径,在我的机器中路径是:
C:\Users\Eliran\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState
有没有办法将它安装到另一个位置?
curl
像和这样的命令wget
会出现以下错误:curl: (35) error:0A000152:SSL routines::unsafe legacy renegotiation disabled
。我正在使用 WSL2 Ubuntu 并在公司防火墙上。我确实将受信任的根 ca 证书导出到 WSL 并更新了证书。然而,在下载 Jenkins、Terraform 等工具时仍然面临这个问题,例如尝试获取 Jenkins 时。
curl -fsSL http://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jen
kins-keyring.asc > /dev/null
curl: (35) error:0A000152:SSL routines::unsafe legacy renegotiation disabled
Run Code Online (Sandbox Code Playgroud)
我使用的是公司 VPN。没有 VPN 命令可以正常工作,但是使用公司网络上的 VPN 时我会收到这些错误。如果我与固件团队一起进行 SSL 绕过,它就会起作用。不确定这里是否还有其他问题。
sudo vim /etc/ssl/openssl.cnf
`#
# OpenSSL example configuration file.
# See doc/man5/config.pod for more info.
#
# This is mostly being used for generation of certificate requests,
# but may be used …
Run Code Online (Sandbox Code Playgroud) WSL2 突然停止工作。如果我重新安装 Linux 发行版。然后,当我从 Play 商店单击 Linux 发行版的启动按钮时,它会抛出以下错误:
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80070003
Error: 0x80070003 The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)
该wsl --help
命令工作正常。所有其他 wsl 命令都会挂起或抛出错误,如下所示,如wsl -l
命令抛出此错误系统找不到指定的路径。
在 win10 [wsl2] docker-desktop 中运行 elasticsearch 需要通过以下方式将 mmap 计数增加到 262144sysctl -w vm.max_map_count=262144
C:\Users\<username>>wsl -d docker-desktop
<hostname>:/tmp/docker-desktop-root/mnt/host/c/Users/<username># sysctl -w vm.max_map_count=262144
Run Code Online (Sandbox Code Playgroud)
在对此问题和弹性文档的回答中,建议相应地更新以将该值设置为永久,即使其在重新启动后仍然存在。vm.max_map_count
/etc/sysctl.conf
请注意下面的输出,显示在我尝试遵循此建议并重新启动后,有效 mmap 计数未适应 sysctl.conf 中定义的值。
为什么没有呢?
PS C:\Users\<username>> wsl -d docker-desktop
<hostname>:/tmp/docker-desktop-root/mnt/host/c/Users/<username># sysctl vm.max_map_count
vm.max_map_count = 65530
<hostname>:/tmp/docker-desktop-root/mnt/host/c/Users/<username># cd /etc
<hostname>:/etc# cat sysctl.conf
# content of this file will override /etc/sysctl.d/*
vm.max_map_count=262144
Run Code Online (Sandbox Code Playgroud)
考虑到更改了错误的 sysctl.conf,etc/
我尝试更改 中的 sysctl.conf <hostname>:/tmp/docker-desktop-root/etc#
。这是不允许的,因为这是一个Read-only file system
.
可以/应该在 .wslconfig 中对其进行参数化吗?如果可以,如何?
使用 openSUSE Leap 15.2 代替 Win10 的 …
我有 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) wsl-2 ×10
windows-subsystem-for-linux ×6
docker ×4
ubuntu ×3
vpn ×2
curl ×1
opensuse ×1
pipe ×1
service ×1
ssl ×1
systemctl ×1
systemd ×1
virtualbox ×1
windows ×1
windows-10 ×1