docker-machine create 時に proxy を指定する
なんかよく忘れるのでメモしておこう。
Proxy を通さなければいけない環境下で docker-machine を使う場合は、machine にログインして /var/lib/boot2docker/profile
に
export HTTPS_PROXY=http://example.com:8080/ # or HTTP_PROXY
と書いてもいいけれど、machine を作成するときにあらかじめ
docker-machine create \ --driver virtualbox \ --engine-env HTTPS_PROXY=http://example.com:8080/ \ default
と HTTP(S)_PROXY を指定して作成したほうがかっこいい。 かっこいいだけで、結局同じだけど。
ちなみに、クライアントも同様に Proxy 配下にいて HTTP(S)_PROXY の値を設定している場合に
docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
と言われて悲しい思いをすることがあるけれど、これは docker コマンドが PROXY を経由してしまうせいなので、おちついて
export NO_PROXY="192.168.99.100,xxx.xxx.xxx.xxx,..."
という感じで NO_PROXY に docker の IP を書いてあげれば OK。
docker-machine env
で得られる値を利用して
export no_proxy=$(docker-machine env | perl -nle 'm{DOCKER_HOST="tcp://(.+):.+"} and print $1')
とかやると便利なので alias
でも作って eval $(docker-machine env)
と同時に両方実行したらいいような気がする。
そうそう、しれっと書かずにやっているけれど docker-machine
コマンドで machine 名を省略すると default
が使われるみたいですよ。