LoginSignup
5
3

More than 3 years have passed since last update.

WSL2でDOCKER_HOSTが指定されているとDockerが動かない

Last updated at Posted at 2020-12-16

TL;DR

Windows 10でDocker for Desktopが動いている状態で、WSLのubuntuでは動いていたdockerが、WSL2にしたら動かなくなったのは、環境変数DOCKER_HOSTが指定されていたため。unset DOCKER_HOSTすると動く。

現象

WSLでdockerが使えていたのに、WSL2にしたら動かなくなった。

$ docker ps                                                                           [~]
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?

実際にDockerは動いており、ポート2375が空いていることはPower Shellで確かめることができる。

$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

$ Test-NetConnection -ComputerName localhost -Port 2375


ComputerName     : localhost
RemoteAddress    : ::1
RemotePort       : 2375
InterfaceAlias   : Loopback Pseudo-Interface 1
SourceAddress    : ::1
TcpTestSucceeded : True

WSLのバージョン確認。

$ wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2

WSLのバージョンは2で、docker-desktopも動いていますね。

原因は、(僕の場合は.zshrcにて)環境変数DOCKER_HOSTが指定されていたため。

export DOCKER_HOST=tcp://localhost:2375

確かWSLではこれが必要だった。しかし、WSL2では不要。これをunsetすると動くようになる。

$ unset DOCKER_HOST
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

動いた。めでたい。

個人的にものすごく困っていたので、同じ理由で困っている人のためにここに記録を残しておきます。

参考

5
3
2

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
5
3