LoginSignup
1
2

More than 5 years have passed since last update.

極端なProxy環境(パスワード&Root CA置き替え)でdocker-machineの利用メモ

Last updated at Posted at 2016-09-08

初めまして、何度もQiitaからの役に立つ記事を得ました。ありがとうございます。自分の経験もシェアさせていただきます。

今回は、掲題のように、極端Proxy下dockerの利用経過を簡単にメモします。
docker-machineはWindows 7で利用しています。

1. PROXYパスワード自動入力

まず自作ツールproxy-login-automatorで、偽のローカルProxyサーバを作成し、それを介して実際のProxyサーバとやり取りする。そのうち、自動的にパスワードに入れる感じ。

node proxy-login-automator.js \
-local_host "*" \
-local_port 65525 \
-remote_host RealHost \
-remote_port 80 \
-usr ProxyUserIdHerer \
-pwd ProxyPasswordHere \
-as_pac_server true
  • -local_host "*"は重要です。docker-machineのブリッジカード192.168.99.1をLISTENしたいためです。(とにかく、docker-machineからもPCからもアクセスできる共同アドレスであればいい)

  • 真のProxyサーバはPAC(プロキシ自動設定)ファイルを提供しているので、偽サーバもas_pac_server trueで同じ機能を提供する。

そして、docker hubのサイトへアクエセウしてみて、先ほどのコマンドの出力には、「新たに、ポートnnnnnで普通のProxy機能を提供する」のような情報を確認して、そのポート番号をメモする。例えば65526。

2.docker-machineを作成

ここでproxy情報はhttp://docker-machinのブリッジアダプターIP:先ほどメモリしたポート

docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://192.168.99.1:65526 \
--engine-env HTTPS_PROXY=http://192.168.99.1:65526 \
--engine-env NO_PROXY="localhost,127.0.0.1,192.168.99.*" \
--virtualbox-disk-size "100000" \
--virtualbox-cpu-count 2 \
--virtualbox-memory 1500 \
default

(docker-machineを再作成したくないですが、ローカルでHTTPS_PROXYなどを設定すればdockerコマンドを利用する試しは失敗)

こうして、docker runは一歩進んだ、ただし、信頼できないコンテンツ、証明証はダメですみたいなエラーが出た。(具体的なメッセージは忘れってしまった)。

あ、これはProxyサーバはSSL通信を監視するために、すべてのWebサーバの証明書を置き替えたから。
普通はProxyサーバの証明書をローカルマシンにROOT信頼機関として導入したので、ブラウザーは問題ない。docker-machine中にも導入必要です。

3. docker-machineにProxyサーバの証明書を導入

  • ブラウザ(例えばfirefox)のアドレスバー左アイコンからサイトの証明を見れます。その証明書をエクスポートして、形式は「BASE64のCER」で良い。まあ、結果はBASE64テキストBEGIN CERTIFICATE...であればOKです。

  • その名前の拡張子をPEMに変更。
        

  • docker-machineにコピー

    docker-machine ssh

    cd /var/lib/boot2docker/
    sudo mkdir certs
    sudo cp /c/Users/Download/THE_PEM_FILE.pem certs/
    
  • docker-machine restart

これで完了。

2016/09/14追加:

4. Docker container中でProxy経由でgitを利用する時の設定

さらに一層設定ですね。
~/.gitconfigに以下を追加

[http]
proxy = http\://192.168.99.1:65526

以上です。

1
2
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
1
2