オイラ、dockerしてるぜ パーソナルファイアウォールの認証を通す
今の職場は、Windowsにパーソナルファイアウォールが設定されていて、検疫ができていないと外部と接続できない。
インターネットオプション - 接続 - LANの設定で、プロキシサーバにアドレス:127.0.0.1 ポート:8000 となっているとする。
そんな環境でDocker toolbox(Windows)で環境を作ろうとして、認証が通らず困っていた。
Docker toolboxは、VirtualBox上でLinuxが動いてこれがホストOSとなるわけだけど、Windowsに対して認証するにはどうすればいいか?
まず、LinuxでProxy認証を通すには、以下の環境変数を設定すればよい。
export http_proxy=http://<UserID>:<Password>@<Proxy IPAddress>:<PortNo>
export https_proxy=https://<UserID>:<Password>@<Proxy IPAddress>:<PortNo>
しかし、WindowsでインターネットオプションのLAN設定に登録されているプロキシのIPアドレス127.0.0.1では、DockerのホストOSになってしまう。
かといってWindowsのIPアドレスを設定すると、認証が通らない。(内部ではなく外部のIPアドレスになるのか?)
答えは、VirtualBoxから見たWindowsのIPアドレスを設定すればいい。
DockerホストOSから以下のように”ip r”を実行してeth0のIPアドレスを確認する。
docker@default:~$ ip r
default via 10.0.2.2 dev eth0 metric 1
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
127.0.0.1 dev lo scope link
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.99.0/24 dev eth1 proto kernel scope link src 192.168.99.100
上記のeth0のIPアドレス10.0.2.2をDockerホストOSの環境変数に反映させるのだけれど、具体的にどうすればよいか?
docker-docs-ja トラブルシューティング「Docker マシン上の /var/lib/boot2docker/profile を更新」に方法が書いてある。(今回の問題環境に合わせて、環境変数の定義を書き換えてあります。認証のユーザID,パスワードは UserID/Passwordで、パーソナルファイアウォールのポートは8000とする。)
これDocker Quickstart Terminalから起動したターミナルで実行する必要があり。
$ docker-machine ssh default docker@default:~$ sudo vi /var/lib/boot2docker/profile -以下の内容をprofile内に追記- export "HTTP_PROXY=http://UserID:Password@10.0.2.2:8000"
export "HTTPS_PROXY=http://UserID:Password@10.0.2.2:8000" export "NO_PROXY=192.168.99.*,*.local,169.254/16,*.example.com,192.168.59.*"
-記入し終わったらviを抜けて以下のコマンドを実行- docker@default:~$ sudo /etc/init.d/docker restart docker@default:~$ exit
これでdocker pullが通るはず。
でも、立ち上げたdockerからapt-getが通らないんだよな・・・。
« 株:現物買い約定(丸井グループ) 売り約定(カルビー) | トップページ | 株:現物買い約定(NSD) »
コメント