下記エラーが出ます。
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
下記を設定したらいいとあったので、やってみましたがどうもダメでした。
下記をやってみました。
$ 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使えました。
docker-compose.yml
WSL1のときは、volumesにフルパスを入力しないと認識しなかったのですが、WSL2だと逆にフルパスだと認識しなかった。まあでもこれでLinuxとかMacと同じになったからよかったです。
パソコン再起動すると使えなくなる
- 上記の内容によって、一度はDockerが使えたものの、パソコンを再起動すると使えなくなりました。
- どこかに、Docker Desktopを再インストールしたらよいと書いてあったので、再インストールしてみたら、またDockerが起動出来たのですが、パソコン再起動したらまたダメになり上記が表示されました。。
対処法
- 下記をやったら直った。
> wsl --shutdown