edo1z blog

プログラミングなどに関するブログです

WSL2にしたらDocker使えへん

下記エラーが出ます。

ERROR: Couldn't connect to Docker daemon at http://localhost:2375 - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

ここに色々解決策が書いてありました。 github.com

下記を設定したらいいとあったので、やってみましたがどうもダメでした。

https://i.gyazo.com/8ce5b78cbd1af25ec166733783dae4f5.png

下記をやってみました。

$ docker context ls
NAME                DESCRIPTION                               DOCKER ENDPOINT        KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST based configuration   tcp://localhost:2375                         swarm
Warning: DOCKER_HOST environment variable overrides the active context. To use a context, either set the global --context flag, or unset DOCKER_HOST environment variable.

# docker context ls
NAME                DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT   ORCHESTRATOR
default *           Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                         swarm

上記は上が、通常ユーザでdocker context lsを実行した結果です。下がrootで実行した結果です。結果が違いました。

.bashrc

.bashrcに自分でDOCKER_HOSTを指定していました。コメントアウトして、.bashrc再読み込みして、Docker Desktopを再起動して、ターミナルも再起動したら、Docker使えました。

https://i.gyazo.com/a5c8f4a51fe707cef286547bf4187259.png

docker-compose.yml

WSL1のときは、volumesにフルパスを入力しないと認識しなかったのですが、WSL2だと逆にフルパスだと認識しなかった。まあでもこれでLinuxとかMacと同じになったからよかったです。

パソコン再起動すると使えなくなる

  • 上記の内容によって、一度はDockerが使えたものの、パソコンを再起動すると使えなくなりました。

gyazo.com

  • どこかに、Docker Desktopを再インストールしたらよいと書いてあったので、再インストールしてみたら、またDockerが起動出来たのですが、パソコン再起動したらまたダメになり上記が表示されました。。

対処法

  • 下記をやったら直った。
> wsl --shutdown