WSL2のアップデートでdockerが認識されなくなったので復旧する

docker

記事について

2022/10に普通にwindows11のWSL2(ubuntu-20.04)を起動したら、WSLアップデートできるよ!って出てたので、アップデートしたらdockerが認識されなくなったので、その復旧についてのメモ。

きっかけ

事のはじまりは、このコード。

$ wsl.exe --update

そして復旧へ・・・

WSLのアップデートが終わってからdocker立ち上げようとしたら、コンテナリストがまるごとなくなって(見えなくなって)いたので、調査開始。

現状の確認

まず、現状の確認。以下はPowerShellにて実行

PS D:\> wsl.exe -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Stopped         2
  Ubuntu-20.04           Running         2
  docker-desktop         Running         2

データサービス?が停止しているのが確認できる。とりあえず、既定ディストリビューションをubuntuに戻しておく。これもPowerShellで実行

PS D:\> wsl --set-default Ubuntu-20.04
この操作を正しく終了しました。
PS D:\> wsl.exe -l -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2
  docker-desktop         Running         2
  docker-desktop-data    Stopped         2

dockerのインストール

wsl2のubuntu上で確認すると、そもそもdockerコマンドがなくなっていたので、インストールを行う。ここからは本家と同一なので、困ったら本家へ。

以下、ubuntu(wsl2)で実行。内容は、古いものを消して、インストールして、アップデートして、docker起動の流れ。

$ sudo apt-get remove docker docker-engine docker.io containerd runc
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package docker-engine

$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

$ sudo mkdir -p /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

$ apt-cache madison docker-ce
$ sudo service docker start

この時点ではまだdockerのコンテナが認識されないので、windowsを再起動する

そして、docker desktopを見てみると・・・元通り!

余談

アップデートは、自分の時間の余裕がある時にやろう。仕事中に気まぐれでやっちゃうとタイヘン。

コメント

タイトルとURLをコピーしました