LoginSignup
0
1

More than 5 years have passed since last update.

プロキシ環境下のHyper-Vが利用できないWindows7でDockerを使うときのメモ

Posted at

経緯

ローカルの検証環境として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やらでコケるようです。

あとがき

同じような環境で導入に苦しんだ方のヒントになればと思います。
結構、試行錯誤したので、誤っている内容があるかもしれませんが、大体の設定した箇所のメモとなります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1