LoginSignup
10
7

More than 3 years have passed since last update.

Docker on wsl2がうんともすんとも言わなくなった

Last updated at Posted at 2020-09-15

Dockerがwslから使えない

きっかけは忘れましたが、突然dockerのコマンドが動かなくなりました。
もちろん、docker-composeも同様です。

エラーメッセージ
ERROR: dial unix /mnt/wsl/docker-desktop/shared-sockets/guest-services/docker.sock: connect: no such file or directory

人によってパスの部分は違いがあると思いますが、こんなエラーが出ました。
wsl上に/var/run/docker.sockっていうシンボリックリンクがあって、これはdocker-desktopっていうwslディストリビューション内のソケットを指しているんですが、これがどういうわけか消えてしまっています。
Dockerを再起動してもwslを再起動しても治りませんでした。

ちなみに、Power Shellからならdockerコマンドが使えました。
wslからdocker daemonへの接続が切れているだけのよう。

直し方

参考:ubuntu running under WSL2 not seeing Docker daemon at unix:///var/run/docker.sock #5096

wsl integrationを有効にしてDocker Desktopを起動すると、wsl内にさっきのsocketなどいろんな関連ファイルのシンボリックリンクを作成するのですが、それらが中途半端に残っているせいで再起動しても治らなかったということらしい。
ので、docker関連のファイルを全て削除します。

sudo find /usr -name "*docker*" -type l -exec rm {} +
sudo find /usr -name "*Docker*" -type l -exec rm {} +
sudo find /usr -name "*kube*" -type l -exec rm {} +
sudo rm /usr/share/doc/docker-ce-cli/changelog.Debian.gz
sudo rm /var/run/docker*

上記コマンドをwslで実行後、dockerを再起動すると治りました。
よかったよかった。

10
7
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
10
7