プロキシ環境下でDockerToolBox(Windows)を動作させる場合、複数個所でプロキシ設定を行う必要があります。
まずDockerToolBox上で仮想環境(Ubuntuのコンテナ)を動作させる場合、以下のような構成になります。
①~③の箇所それぞれで通信が発生するため、すべてにプロキシ設定が必要になります。
①Winodows PCでDockerToolBoxが仮想マシンdefaultを作るための通信
②仮想マシンdefaultがdockerを動作させるための通信
③コンテナからの通信
というわけで、以下が対応手順。
(1)Windows PCで「Intel VT-x 拡張(仮想化拡張)」を有効する
(2)DockerToolboxがプロキシを経由するように環境変数を設定
(3)仮想マシンdefaultにプロキシ設定を記述
(4)各コンテナにプロキシ設定を記述
(1)Windows PCで「Intel VT-x 拡張(仮想化拡張)」を有効する
無効になっている場合、DockerToolBox起動時にVT-x云々のエラーが表示されるはずです。BIOS設定から有効化してください。
(2)DockerToolboxがプロキシを経由するように環境変数を設定
私はここで躓きました。
DockerToolBox(Docker Quickstart Terminal)を実行しても、エラーが発生してVirtualBox内に仮想マシン(default)が作成されません。色々対応方法を探しましたがよく分からず、私は以下の方法で対応しました。
「C:\Program Files\Docker Toolbox\start.sh」のファイルを覗くと、環境変数「http_proxy」や「https_proxy」が使われていたため、恐らくここにプロキシの設定を入れておけば動作するのではないかと推測。システム環境変数またはユーザー環境変数に以下の2つを設定。
変数名 | 設定値 |
---|---|
http_proxy | プロキシサーバのIP:ポート番号 |
https_proxy | プロキシサーバのIP:ポート番号 |
※VirtualBox動作時に管理者権限が必要なので注意しましょう。
(3)仮想マシンdefaultにプロキシ設定を記述
①デスクトップ上の[Docker Quickstart Terminal]をダブルクリック(初回は時間がかかるかも)
②コマンド[docker-machine ssh default]実行し、Docker動作環境に接続
③コマンド[sudo vi /var/lib/boot2docker/profile]実行し、プロキシ設定として以下を記述して保存
export HTTP_PROXY=http://プロキシサーバのIP:ポート番号 export HTTPS_PROXY=$HTTP_PROXY export NO_PROXY=localhost,127.0.0.1,.sock
④コマンド[sudo /etc/init.d/docker restart]で再起動
※TLSの警告表示は気にしない
⑤コマンド[exit]でDocker動作環境から抜ける
(4)各コンテナにプロキシ設定を記述
各コンテナごとプロキシ設定を行います。
例)Ubuntuの場合
①/etc/yum.confに以下追記。
proxy=http://プロキシサーバのIP:ポート番号
②ユーザのホームディレクトリ/.bash_profileに以下追記。
http_proxy=http://プロキシサーバのIP:ポート番号
以上。