Windowsを再起動したらdocker-wsl-cli.isoが存在しないというエラーでDocker Desktopが立ち上がらなくなったのでその対策を残しておきます。

症状

こんなエラーメッセージが表示されて立ち上がらなくなりました。

WSL distro stopped while waiting for Lifecycle server.
  >Stdout:

  >Stderr:
2021/03/02 04:35:43 resolving /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso...
Error: mounting wslCLIDest: stat /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso: no such file or directory
2021/03/02 04:35:43 stat /mnt/host/c/Program Files/Docker/Docker/resources/wsl/docker-wsl-cli.iso: no such file or directory
mounting wslCLIDest
main.doRun
	/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:236
main.run.func1
	/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:91
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).execute
	/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:842
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).ExecuteC
	/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:950
github.com/docker/pinata/vendor/github.com/spf13/cobra.(*Command).Execute
	/go/src/github.com/docker/pinata/vendor/github.com/spf13/cobra/command.go:887
main.main
	/go/src/github.com/docker/pinata/linuxkit/pkg/wsl-bootstrap/main.go:33
runtime.main
	/usr/local/go/src/runtime/proc.go:225
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:1371

ダメだった対策

Windowsの再起動やエラーダイアログに表示されてるReset to factory defaultsをしても治らない。 あとはDockerの手動再起動などもしてみましたが何も変わらず。

原因

どうやらWSL2側でWindowsのドライブがマウントできてないらしくUbuntuを立ち上げて

cd /mnt/c

してみるとディレクトリを見つけられないのが原因だと判明。 なので、コマンドプロンプト(私の環境ではnyagosですが)を立ち上げて wsl.exe --shutdown でWSLを再起動しましょう。

私の環境では以上の方法で治りましたが、まだエラーが続く場合は公式のIssueに質問してみるといいかもしれません。

参考

Docker Startup problems Switching Docker to use WSL2 containers · Issue #6822 · docker/for-win