プロキシ設定が必要なネットワークでDocker buildのエラーが出る
WSL2+Docker Desktop for Windowsでdocker buildが通らない
会社にプロキシがある場合 docker build で以下のようなエラーがでる場合がある。
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host.
このエラーを解決するのにえらく時間がかかった。結論から言うとDocker Desktop側とWSL2側それぞれでプロキシの設定をしてあげる必要がある。
プロキシ設定は2つ必要
プロキシの設定は2つ行う必要がある。
- Docker Desktopでの設定
- docker buildコマンド実行時のオプションでの指定 or
$HOME/.docker/config.jsonでの設定
Docker Desktopでの設定
こちらはわかりやすい。画像にあるようにDocker Desktopで設定する。

docker buildコマンド実行時のオプションでの指定
Docker Desktop側の設定だけでは docker buildは通らない。 docker buildをプロキシを通して行うには docker buildのオプションでプロキシ設定をする必要がある。
VSCodeの devcontainer.json で設定する
VSCodeのRemote-Containersを使っている場合 docker build コマンドはVSCodeから呼び出されるため devcontainer.jsonでオプション設定をする必要がある。
ちなみにDockerfileにARGで指定することもできる。
$HOME/.docker/config.jsonで設定する
これを書いていてあらためて色々調べていて知ったのだが $HOME/.docker/config.json に指定してもいいらしい。
こちらはHTTP_PROXYといったKeyの書き方ではないようなので少し気をつける必要がある。