プロキシーサーバー利用の設定
コンテナーが HTTP、HTTPS、FTP によるプロキシーサーバーを必要とする場合、さまざまな方法により設定を行うことができます。
-
Docker 17.07 またはそれ以降においては、Docker クライアントの設定 を行って、プロキシー情報をコンテナーに自動的に設定することができます。
-
Docker 17.06 またはそれ以前においては、コンテナー内部にて 環境変数 の適切な設定を行う必要があります。 これを行うタイミングは、イメージビルド時(この場合は可搬性が劣ることになります)、生成時、実行時のいずれかになります。
Docker クライアントの設定
-
Docker クライアント上において、コンテナーを起動するユーザーのホームディレクトリ内に
~/.docker/config.json
を新規生成するか、これを編集します。 そして以下のような JSON 記述を追加します。 この記述において、プロキシータイプとして必要であればhttpsProxy
またはftpProxy
を指定します。 またプロキシーサーバーのアドレスとポートを指定します。 プロキシーサーバーは、同時に複数設定することもできます。プロキシーサーバーを介したくないホストや IP 範囲の指定が必要な場合は、
noProxy
キーにおいて 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
フラグを利用した場合、以下に示すような環境変数を使って、値を設定して利用することができます。
この方法ではイメージの可搬性が損なわれます。
したがって Docker 17.07 またはそれ以降を利用している場合は、代わりに Docker クライアントの設定 を行ってください。
変数 | Dockerfile 例 | docker run 実行例 |
---|---|---|
HTTP_PROXY |
ENV HTTP_PROXY="http://192.168.1.12:3128" |
--env HTTP_PROXY="http://192.168.1.12:3128" |
HTTPS_PROXY |
ENV HTTPS_PROXY="https://192.168.1.12:3128" |
--env HTTPS_PROXY="https://192.168.1.12:3128" |
FTP_PROXY |
ENV FTP_PROXY="ftp://192.168.1.12:3128" |
--env FTP_PROXY="ftp://192.168.1.12:3128" |
NO_PROXY |
ENV NO_PROXY="*.test.example.com,.example2.com" |
--env NO_PROXY="*.test.example.com,.example2.com" |