プロキシサーバを使うように Docker を設定¶
コンテナで HTTP、HTTPS、FTP プロキシサーバが必要な場合、異なる方法で設定できます。
Docker 17.07 以上では、 Docker クライアントを設定 して、自動的にコンテナにプロキシ情報を渡せます。
Docker 17.06 以下のバージョンでは、コンテナ内で適切な
環境変数 の設定が必要です。そのためには、イメージ構築時(イメージの移植性 が下がります)か、コンテナの作成もしくは実行時に行います。
Docker クライアントの設定¶
Docker クライアント上では、ユーザのホームディレクトリ内で
~/.docker/config.json
ファイルを作成・編集します。以下の例のような JSON を追加します。必要があれば、プロキシのタイプとしてhttpsProxy
やftpProxy
に置き換えます。さらに、プロキシサーバのアドレスやポート番号も置き換えます。また、同時に複数のプロキシサーバも設定できます。オプションでホストや範囲をプロキシサーバの設定を通して除外できます。
noProxy
キーの設定で、1つまたは複数のカンマ区切りの IP アドレスやホストを追加します。 以下の例にあるように、ホストと IP アドレスの CIDR 記法を使う時に、*
文字の利用がサポートされています。{ "proxies": { "default": { "httpProxy": "http://192.168.1.12:3128", "httpsProxy": "http://192.168.1.12:3128", "noProxy": "*.test.example.com,.example2.com,127.0.0.0/8" } } }
ファイルを保存します。
新しいコンテナの作成もしくは起動時に、環境変数はコンテナ内へ自動的に設定されます。
環境変数を使う¶
環境変数を手動で設定¶
イメージの構築時、あるいは、コンテナの作成・実行時に --env
フラグを使う場合、以下の1つまたは複数の変数と、適切な値を指定できます。この手法はイメージの移植性を減少します。そのため、 Docker 17.07 以上であれば、 Docker クライアントの設定 を使うべきです。
変数 |
Dockerfile 例 |
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
参考
- Configure Docker to use a proxy server