プロキシ環境下では Docker のプロキシ設定を行わないとイメージの Pull などが行えません。

プロキシの設定方法
/etc/systemd/system/docker.service.d/http-proxy.conf
を作成します。
$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
以下を追記します。
[Service]
Environment="HTTP_PROXY=http://{IP Address}:{port}"
Environment="HTTPS_PROXY=http://{IP Address}:{port}"
変更を適用します。
$ sudo systemctl daemon-reload
Docker デーモンを再起動します。
$ sudo systemctl restart docker
変更が適用されているか確認したい場合は以下を実行します。
$ systemctl show --property=Environment docker
以上で OK です。
Docker クライアントのプロキシ設定
イメージの Pull は上記で OK ですが、Dockerifle のビルド時に必要となるプロキシ設定はまた別です。
ビルド時に --build-args
などでプロキシの設定を行えますが、都度指定するのも大変です。
以下の設定を行うことでそれが不要になります。
~/.docker/config.json
を作成します。
$ mkdir ~/.docker
$ nano ~/.docker/config.json
以下を追記します。
{
"proxies": {
"default": {
"httpProxy": "http://{IP Address}:{port}",
"httpsProxy": "http://{IP Address}:{port}",
"noProxy": "localhost,127.0.0.1,host.docker.internal"
}
}
}
以上で OK です。
もしかしたら一度再起動が必要かもしれません。
尚、docker network を作成している場合、私の環境ではそのネットワーク名も noProxy
に記述しないと、コンテナ間の通信にもプロキシ設定が反映されてしまいました。