Docker 运行 始终冻结或 WSL Ubuntu 发行版在等待生命周期服务器时停止
Docker run always Frozen or WSL Ubuntu distro stopped while waiting for Lifecycle server
运行 在 Insider Preview 程序中更新到最新版本的 Windows 后出现此错误。我注意到在应用此 Windows 更新后,我的 Hyper-V 管理工具和 Hyper-V 平台的 Hyper-V 设置现在已启用。我不记得这些是否在更新之前都打开了。
Windows
错误 ⚠
WSL distro stopped while waiting for Lifecycle server.
>Stdout:
>Stderr:
2020/08/08 20:51:59 resolving /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso...
2020/08/08 20:51:59 copying...
Error: mounting wslCLIDest: open /mnt/host/wsl/docker-desktop-data/isocache/c6c2ec214a20124f40a56bbc09f0f7f8fdc9a217881c0ff725af2e476e4b3734.iso: input/output error
2020/08/08 20:51:59 open /mnt/host/wsl/docker-desktop-data/isocache/c6c2ec214a20124f40a56bbc09f0f7f8fdc9a217881c0ff725af2e476e4b3734.iso: input/output error
mounting wslCLIDest
main.doRun
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:224
main.run.func1
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:83
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).execute
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:762
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:852
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).Execute
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:800
main.main
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:25
runtime.main
/usr/local/go/src/runtime/proc.go:203
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1357
WSL 规范
usr@win:/mnt/c/$ neofetch
.-/+oossssoo+/-. usr@win
`:+ssssssssssssssssss+:` ----------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 20.04 LTS on Windows 10 x86_64
.ossssssssssssssssssdMMMNysssso. Kernel: 4.19.104-microsoft-standard
/ssssssssssshdmmNNmmyNMMMMhssssss/ Uptime: 3 mins
+ssssssssshmydMMMMMMMNddddyssssssss+ Packages: 640 (dpkg)
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Shell: bash 5.0.16
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Terminal: /dev/pts/1
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ CPU: Intel i7-6700K (8) @ 4.007GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: 9542:00:00.0 Microsoft Corporation Device 008e
ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 497MiB / 7959MiB
+sssshhhyNMMNyssssssssssssyNMMMysssssss+
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
我能够解决这个问题。按照这些步骤进行操作,它也可能会为您修复它,这是我在以下位置尝试过的顺序:
- 删除 Windows WSL 发行版上的 Ubuntu,然后从 Microsoft Store 重新安装。
- 使用 Docker 桌面应用程序清理/清除数据。
- 使用 Docker 桌面应用程序将 Docker 重置为出厂默认设置。
- 禁用 Hyper-V 管理工具和 Hyper-V 平台并重新启动 Windows <-------- ✔ 真正修复我的情况。
- 运行 Docker 作为超级用户执行命令
sudo su
<-------- 如果第 4 步不适合您,您可能需要执行此操作。
将内存更新为 1G 解决了我的问题。按照以下步骤操作:
打开WindowsTerminal/CMD/PowerShell和运行以下命令:
#turn off all wsl instances such as docker-desktop
wsl --shutdown
notepad "$env:USERPROFILE/.wslconfig"
记事本打开并创建一个新文件 .wslconfig。(如果这是第一次)
使用记事本编辑 .wslconfig 文件并记下这些设置:
[wsl2]
memory=1GB
对于 Windows
在重新安装和其他东西之前,只是 reset docker to factory defaults
。此后大部分时间都在 windows env 上工作。
就我而言,WSL 有时在 windows 启动后未挂载 c:\ 驱动器。因此 Docker 也不会启动并中止并出现错误“WSL 发行版在等待生命周期服务器时停止。”
我写了一个 .bat 脚本来检查现有的“/mnt/c/”。如果不存在,它会重新启动 WSL。只有这样 Docker 才开始。
我从自动启动中删除了 Docker,而是在启动时执行此脚本。
@echo off
set CHECKDIR="/mnt/c/Users"
echo Check if dir %CHECKDIR% exists.
bash -c "cd %CHECKDIR%" && (
echo Check successful
) || (
echo Check failed. Restarting WSL
wsl --shutdown
)
echo Start Docker
start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"
也许这对这里的一些人来说很有趣,只要这个错误没有被修复。
运行 在 Insider Preview 程序中更新到最新版本的 Windows 后出现此错误。我注意到在应用此 Windows 更新后,我的 Hyper-V 管理工具和 Hyper-V 平台的 Hyper-V 设置现在已启用。我不记得这些是否在更新之前都打开了。
Windows
错误 ⚠
WSL distro stopped while waiting for Lifecycle server.
>Stdout:
>Stderr:
2020/08/08 20:51:59 resolving /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso...
2020/08/08 20:51:59 copying...
Error: mounting wslCLIDest: open /mnt/host/wsl/docker-desktop-data/isocache/c6c2ec214a20124f40a56bbc09f0f7f8fdc9a217881c0ff725af2e476e4b3734.iso: input/output error
2020/08/08 20:51:59 open /mnt/host/wsl/docker-desktop-data/isocache/c6c2ec214a20124f40a56bbc09f0f7f8fdc9a217881c0ff725af2e476e4b3734.iso: input/output error
mounting wslCLIDest
main.doRun
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:224
main.run.func1
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:83
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).execute
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:762
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:852
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).Execute
/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:800
main.main
/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:25
runtime.main
/usr/local/go/src/runtime/proc.go:203
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1357
WSL 规范
usr@win:/mnt/c/$ neofetch
.-/+oossssoo+/-. usr@win
`:+ssssssssssssssssss+:` ----------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 20.04 LTS on Windows 10 x86_64
.ossssssssssssssssssdMMMNysssso. Kernel: 4.19.104-microsoft-standard
/ssssssssssshdmmNNmmyNMMMMhssssss/ Uptime: 3 mins
+ssssssssshmydMMMMMMMNddddyssssssss+ Packages: 640 (dpkg)
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Shell: bash 5.0.16
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Terminal: /dev/pts/1
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ CPU: Intel i7-6700K (8) @ 4.007GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: 9542:00:00.0 Microsoft Corporation Device 008e
ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 497MiB / 7959MiB
+sssshhhyNMMNyssssssssssssyNMMMysssssss+
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
我能够解决这个问题。按照这些步骤进行操作,它也可能会为您修复它,这是我在以下位置尝试过的顺序:
- 删除 Windows WSL 发行版上的 Ubuntu,然后从 Microsoft Store 重新安装。
- 使用 Docker 桌面应用程序清理/清除数据。
- 使用 Docker 桌面应用程序将 Docker 重置为出厂默认设置。
- 禁用 Hyper-V 管理工具和 Hyper-V 平台并重新启动 Windows <-------- ✔ 真正修复我的情况。
- 运行 Docker 作为超级用户执行命令
sudo su
<-------- 如果第 4 步不适合您,您可能需要执行此操作。
将内存更新为 1G 解决了我的问题。按照以下步骤操作:
打开WindowsTerminal/CMD/PowerShell和运行以下命令:
#turn off all wsl instances such as docker-desktop
wsl --shutdown
notepad "$env:USERPROFILE/.wslconfig"
记事本打开并创建一个新文件 .wslconfig。(如果这是第一次)
使用记事本编辑 .wslconfig 文件并记下这些设置:
[wsl2]
memory=1GB
对于 Windows
在重新安装和其他东西之前,只是 reset docker to factory defaults
。此后大部分时间都在 windows env 上工作。
就我而言,WSL 有时在 windows 启动后未挂载 c:\ 驱动器。因此 Docker 也不会启动并中止并出现错误“WSL 发行版在等待生命周期服务器时停止。”
我写了一个 .bat 脚本来检查现有的“/mnt/c/”。如果不存在,它会重新启动 WSL。只有这样 Docker 才开始。
我从自动启动中删除了 Docker,而是在启动时执行此脚本。
@echo off
set CHECKDIR="/mnt/c/Users"
echo Check if dir %CHECKDIR% exists.
bash -c "cd %CHECKDIR%" && (
echo Check successful
) || (
echo Check failed. Restarting WSL
wsl --shutdown
)
echo Start Docker
start "" "C:\Program Files\Docker\Docker\Docker Desktop.exe"
也许这对这里的一些人来说很有趣,只要这个错误没有被修复。