認証プロキシ+独自リゾルバの環境でDockerデーモンが正常に動かない(未解決)
目次
事象
Dockerデーモンが外部アクセスするような操作(pull とか)を実行する際、下記のようなエラーが発生する。
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 3.229.227.53:443: i/o timeout
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)
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded
環境
項目 | 値 |
---|---|
OS | Ubuntu 20.04 Linux 5.11.0-27 |
Docker | 20.10.11 |
設定値
項目 | 値 |
---|---|
DNSサーバ | 192.0.2.254 |
プロキシ | http://192.0.2.253:8080 |
プロキシユーザ | user |
プロキシユーザパスワード | Passw0rd |
やったこと
プロキシサーバ環境変数の設定
~/.zshrc
export http_proxy=http://user:Passw0rd@192.0.2.253:8080 export https_proxy=http://user:Passw0rd@192.0.2.253:8080 export HTTP_PROXY=http://user:Passw0rd@192.0.2.253:8080 export HTTPS_PROXY=http://user:Passw0rd@192.0.2.253:8080
Dockerデーモンが使用するDNSサーバの設定
{ "dns": [ "192.0.2.254" ] }
Dockerデーモンに渡すプロキシサーバ変数の設定
/etc/systemd/system/docker.service.d/override.conf
[Service] Environment='HTTP_PROXY=http://user:Passw0rd@192.0.2.253:8080' 'HTTPS_PROXY=http://user:Passw0rd@192.0.2.253:8080'
ユーザごとのDockerで使用するプロキシサーバ変数の設定
~/.docker/config.json
{ "proxies": { "default": { "httpProxy": "http://user:Passw0rd@192.0.2.253:8080", "httpsProxy": "http://user:Passw0rd@192.0.2.253:8080" } } }
まとめ
- 認証プロキシつらい
- パブリックDNSを使わせてほしい
- 誰もこの環境で困っていないのだろうか……