[Docker]イメージ取得でタイムアウトエラー、パスワード付きproxy設定で解決

  • 環境

    • Windows10
    • Docker version 18.09.2, build 6247962
      >ver
      Microsoft Windows [Version 10.0.17763.134]
      >docker -v
      Docker version 18.09.2, build 6247962
  • 現象

    • イメージ取得でタイムアウトエラー
      >docker pull tensorflow/tensorflow
      Using default tag: latest
      Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  • 対策案
    ネット上では、以下の対処がぱっと見つかりました。

    • Dockerを再起動する
    • Dockerの設定→Network→DNS Serverの設定「Automatic」を「Fixed」に切り替えて、「8.8.8.8」に設定する
    • プロキシを変更する
      タスクトレイにあるDockerアイコンを右クリックして「Settings…」→「Manual proxy configuration」で、設定

今回、自分のケースでは、プロキシ設定が誤っていて、正しく設定することで動作するようになりました。

設定するプロキシ名が大体、以下のような感じです。

proxyhost:port
例:10.10.10.10:8080

認証情報が必要なプロキシの場合は以下のようにします。

http://username:password@proxyhost:port
例:http://admin:pass1234@hogeproxy:8080

※認証情報に記号があるときはURLエンコードする必要があります。

例:"p@ss" -> "p%40ss"

設定後は、正しく設定されているか確認。
ただし、認証情報はx文字で伏字されていました。

>docker info
~省略~
HTTP Proxy: http://xxxxx:xxxxx@yyy.yyy.yyy.yyy:zzz
HTTPS Proxy: http://xxxxx:xxxxx@yy.yyy.yyy.yyy:zzz
No Proxy: hogehoge
~省略~