INFRA

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.

ここに色々解決策が書いてありました。 https://github.com/docker/for-win/issues/5096github.com

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

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

下記をやってみました。

Terminal window
$ 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