経緯
ローカルの検証環境としてDockerを利用したかったのですが、複数の問題があり苦戦しました。そのときのメモです。
状況
- プロキシ環境下(こいつのせいで苦労を…!)
- 支給されているPC(Windows7)がHyper-Vが利用できない
ツールの選定
Hyper-Vが利用できない為、Virualbox+Dockertoolboxの組み合わせを選定しました。
使えていれば、Docker for Windowsを使えば済んだ気がします。
セットアップ
各ツールのインストール
デフォルト設定でインストールすれば大丈夫でした。
Dockerマシンの作成
プロキシが絡んでいるので、少し手を加える必要があります。
start.shの編集
Dockertoolboxのインストール先(デフォルトはProgramFile配下)にstart.shというスクリプトがあるので、スクリプト冒頭部分でプロキシ用の変数を宣言します。
#!/bin/bash
export HTTP_PROXY=http://[プロキシホスト]:[プロキシポート] # 追記
export HTTPS_PROXY=${HTTP_PROXY} # 追記
docker-machine create
コマンドプロンプトで実行します。(ここ重要)
> SET HTTP_PROXY=http://[プロキシホスト]:[プロキシポート]
> SET HTTPS_PROXY=http://[プロキシホスト]:[プロキシポート]
> docker-machine create -d virtualbox default
start.shのプロキシ設定がきちんと働いていれば、無事に作成されるはず。
一旦、コマンドプロンプトを終了します。
Docker Quickstart Terminalの設定
今後は一緒にインストールされたこっちのターミナルで作業することにします。
とりあえず、このターミナルにもプロキシ設定を導入してあげます。
ターミナルを起動します。
$ vi .bash_profile
--- 以下を追記 ---
export HTTP_PROXY=http://[プロキシホスト]:[プロキシポート]
export HTTPS_PROXY=${HTTP_PROXY}
export NO_PROXY=localhost,127.0.0.1,192.168.99.100
--- ここまで ---
$ source .bash_profile
上記で NO_PROXY
に指定してる 192.168.99.100
はDockerマシンの仮想環境が利用するIPです。(docker-machine lsで確認可能)
仮想マシンのプロキシ設定も更新
$ docker-machine ssh
--- 仮想環境に入る ---
$ sudo vi /var/lib/boot2docker/profile
--- 以下の追記 ---
export HTTP_PROXY=http://[プロキシホスト]:[プロキシポート]
export HTTPS_PROXY=$HTTP_PROXY
export NO_PROXY=localhost,127.0.0.1,.sock
--- ここまで ---
$ sudo /etc/init.d/docker restart
$ exit
--- 仮想環境から抜ける ---
やっとDockerが使える…が
docker buildで通信するときに死にます…。
ので、Dockerfileでyumとか使う場合は、以下の記載をお忘れなく!
ENV HTTP_PROXY http://[プロキシホスト]:[プロキシポート]
ENV HTTPS_PROXY ${HTTP_PROXY}
ENV http_proxy ${HTTP_PROXY}
ENV https_proxy ${HTTP_PROXY}
小文字の変数も用意してあげないと、rpmやらyumやらでコケるようです。
あとがき
同じような環境で導入に苦しんだ方のヒントになればと思います。
結構、試行錯誤したので、誤っている内容があるかもしれませんが、大体の設定した箇所のメモとなります。