LoginSignup
5
3

More than 1 year has passed since last update.

Docker DesktopをWSL2と紐づけると起動しなくなる。

Last updated at Posted at 2023-01-09

DockerDesktopが起動しなくなり、3日間いろいろ試したのですが起動せず・・・
Qiitaにてご回答いただいた情報をもとに試したところ解決したため残します。

問題点

DockerDesktopにてSettingsのUse the WSL2 based engineにチェックを入れると起動しない。
(インストール時にチェックを外すと起動は可能であるが、職場の環境構築マニュアルではチェックを入れないとならない。)

発生しているエラー

Docker Desktop -Ubuntu
WSL integration with distro Ubuntu unexpectedly stopped with exit code1.
Do you want to restart it?

自分で試したこと

エラー内容で検索し、出てきたこちら↓の内容を参考にさせていただきながらおおよそ試しました。

上記記事の大まかな内容ですが
コントロールパネルのWindowsの機能の有効化または無効化を開き、
・Linux用Windowsサブシステム(windows subsystem for Linux)
・仮想マシンプラットフォーム
にチェックが入っていることを確認しました。

WSLのpowershellの管理者モードにて

wsl -l -v

にて
・default version が2になっていること
・WSLのディストリビューションにUbuntuが選択されていることを確認しました。

・DockerDesktopのdebagにてClean / Purge data、アンインストール
・Ubuntuのアンインストール
・WSLのアンインストール
(すべてコントロールパネルのWindowsの機能の有効化または無効化にて、
・Linux用Windowsサブシステム(windows subsystem for Linux)
・仮想マシンプラットフォーム
のチェックを外し、再起動を行ったうえでアンインストールを実施しております。)

などを試してみましたがエラー内容は変わらず、起動できませんでした。

唯一DockerDesktopを再度インストールする際に、
WSL2オプションをチェックoffにしてインストールしたところDockerのチュートリアルが起動したので、DockerDesktop側ではなくWSL2に紐づけをする際のエラーなのではないかと推測した。

もうひとつエラーメッセージが出ていたのですがこちらはさっぱり何を言っているのかわからず、触れていません。

An Error Occured

System.TimeoutException:
操作がタイムアウトしました。
   場所 System.IO.Pipes.NamedPipeClientStream.ConnectInternal(Int32 timeout, CancellationToken cancellationToken, Int32 startTime)
   場所 System.Threading.Tasks.Task.Execute()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 HttpOverStream.NamedPipe.NamedPipeDialer.<DialAsync>d__8.MoveNext()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 HttpOverStream.Client.DialMessageHandler.<SendAsync>d__9.MoveNext()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.Core.IPC.Client.<SendAsync>d__5.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Core\IPC\Client.cs:行 40
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.Core.HttpClientExtensions.<GetJsonAsync>d__0`1.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Core\HttpClientExtensions.cs:行 16
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.ApiServices.LifecycleClient.<GetDockerStateAsync>d__4.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Engines\LifecycleClient.cs:行 49
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   場所 Docker.Engines.LinuxkitDaemonStartup.<WaitAsync>d__5.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Engines\LinuxkitDaemonStartup.cs:行 60
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.Engines.WSL2.LinuxWSL2Engine.<DoStartAsync>d__26.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Engines\WSL2\LinuxWSL2Engine.cs:行 170
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.ApiServices.StateMachines.TaskExtensions.<WrapAsyncInCancellationException>d__0.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\TaskExtensions.cs:行 29
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__6.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行 72
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 Docker.ApiServices.StateMachines.StartTransition.<DoRunAsync>d__6.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\StartTransition.cs:行 99
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.ApiServices.StateMachines.EngineStateMachine.<StartAsync>d__15.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.ApiServices\StateMachines\EngineStateMachine.cs:行 72
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
   場所 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   場所 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   場所 Docker.Engines.Engines.<StartAsync>d__23.MoveNext() 場所 C:\workspaces\main-merge\src\github.com\docker\pinata\win\src\Docker.Engines\Engines.cs:行 109

こちら↑にて質問させていただきました。

いただいた情報をもとにシステム環境変数にC:\Windows\System32を追加し、PCの再起動を行ったところ、無事DockerDesktopが動き出しました!!!!!!

参考記事
https://stackoverflow.com/questions/71644746/docker-wsl-2-integration-with-distro-ubuntu-20-04-unexpectedly-stopped-with-exi

うれしすぎて涙が出ました。

ただこのエラーにぶち当たったことでDockerの仕組み、WSLの仕組みなどが何となく理解できた気がします。
ご回答いただいた方に感謝し、勉強頑張っていきたいです。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3