Docker ホスト側のプロキシ設定
docker pull などで、Docker Hub リポジトリからイメージを取得するときにプロキシ接続が必要な場合は、Docker コンテナーではなく、Docker ホスト側のプロキシ設定を行う必要があります。
実際には、docker pull コマンドは、docker デーモンに対して命令を送っているだけなので、docker デーモンの方がプロキシ設定を認識する必要があります。
docker デーモンのプロキシ設定は、/etc/default/docker ファイルで行います。
export http_proxy="http://proxy.example.com:3128/"設定変更後は、docker デーモンを再起動すれば OK です。
$ sudo service docker.io restart
これで、無事にプロキシ経由で docker pull できるようになります。
Docker コンテナ内で使用するプロキシ設定
Docker コンテナの中で、apt-get や curl などを使ったインターネットアクセスを行う場合は、Docker コンテナ側でプロキシの設定を行う必要があります。
docker run で Docker コンテナを起動するときに、-e オプションで http_proxy 環境変数 を渡して起動することができます。
$ sudo docker run -e http_proxy=http://proxy.example.com:8888/ -it debian:wheezy
もちろん、Docker コンテナを起動したあとで、コンテナ上のシェルから環境変数を設定することもできます。
$ sudo docker run -it debian:wheezy
root@7cb147891556:/# export http_proxy=http://proxy.example.com:8888/
root@7cb147891556:/#
Docker イメージとして、必ず特定のプロキシを使うことが決まっているのであれば、Docker イメージを作成する際の Dockerfile にプロキシ設定を埋め込んでしまうこともできます。
このプロキシ設定は、Docker イメージを構築する際の、RUN コマンド (apt-get) にも効いてきます。
FROM debian:wheezy
ENV http_proxy http://proxy.example.com:8888/
ENV https_proxy http://proxy.example.com:8888/
RUN apt-get update && apt-get install python3