2016年7月1日金曜日

macOSのdocker toolboxをproxy環境下で使うために必要だった設定

proxy環境下でdocker toolboxを使った場合に必要だった設定のメモ
具体的には2つ別の設定をする必要があったのでメモ。
良く考えればそうなんだけど、そもそもの構成を理解してなかったというのもある。



1.boot2docker内からproxy接続するための設定

以下のファイルを編集
$ sudo vi /var/lib/boot2docker/profile

export http_proxy=http://xxx.xxx.xxx.xxx:xxxx
...
みたいに書く。

その上で、
$ sudo /etc/init.d/docker restart

これでboot2docker内ではdockerコマンドが通るようになる
$ docker search hello-world
みたいな感じ

2.osx上のdockerコマンドがboot2dockerに接続するための設定
osx上のdockerコマンドは裏でデフォルト2376ポートでboot2dockerと通信することで
透過的なコマンドを実現しているようで(※)、これはproxyを介さないようにする必要がある。

proxy設定によっては不要なんだろうけれど、特定のポートしか許可してなかったりする場合にはこの設定が必要

具体的にはexport no_proxy=xxx.xxx.xxx.xxxのような感じで環境変数に設定する。
設定するIPアドレスは
$ docker-machine ls
のURLとか、
$ docker-machine env 環境名
のDOCKER_HOSTで出てくるIPアドレスが対象である。

<追記>
macOS上のipアドレスとVirtualbox上のipアドレスのマッピングは
VBoxManageコマンドで可能そう(まだ試してない)

https://skatsuta.github.io/2015/08/13/docker-machine-port-forwarding/

<さらに追記>
というかVirtualboxのGUIから普通にできたので通常はそれ使えばいいと思った。