Mac(多分Windowsも同じ)でDocker環境を使う時、会社とかだとプロキシサーバが何かと障害になる・・・
プロキシ環境を設定して、dockerコマンドをちゃんと使えるようにしたい。
pullとかで長いこと待たされた挙句にtimeoutとかまじありえん。
boot2dockerの時は
boot2docker を利用していた時は、boot2docker ssh
コマンドでdokcerサーバにログインして以下のファイル修正でいけた。
ついでなのでタイムゾーンを日本時間に変更して時刻同期を行うようにもしてた。
これをやっておけば、ホストOSをスリープにしてる間にコンテナの時間が止まるを防げる。
PROXYサーバを設定しているような会社では大抵アカウント管理をADでやっているだろうから時刻同期サーバも社内にあるはず。
不明またはそんなの知らんって場合は、ネットで公開されているstratum 2とかの時刻同期サーバのIPでいいんじゃないかな。
export http_proxy=http://PROXYサーバのアドレス:ポート
export https_proxy=$http_proxy
export no_proxy=127.0.0.1,localhost,192.168.59.103,社内でアクセスしたいIP
export TZ="JST-9"
export NTP_SERVER="社内の時刻同期サーバIP"
Docker Toolboxでは
ところがどっこい。
Docker Toolbox (Docker Quickstart Terminal アイコンで起動するあれ) ではこれが何でか元に戻される。
boot2dockerではここだけは変更されないはずだったのに。
んで、Docker ToolboxではホストOS側にあるJSONファイルに定義すればよいらしい。
これに定義した内容がbootlocal.shに反映される。
HostOptions > EngineOptions > Env に配列定義すればいいんだよ。
{
"HostOptions": {
"EngineOptions": {
"Env": [
"HTTP_PROXY=http://PROXYサーバのアドレス:ポート",
"HTTPS_PROXY=http://PROXYサーバのアドレス:ポート",
"NO_PROXY=127.0.0.1,localhost,192.168.99.100,社内でアクセスしたいIP",
"TZ=Asia/Tokyo",
"NTP_SERVER=社内の時刻同期サーバ"
],
}
}
}
これでもうプロキシサーバと戦わなくて済む!
追記:2016/09/09
新しい環境を構築していたら、またまた仕様が変わってた。
設定作業内容はboot2dockerとほぼ同様で、保存先ファイルが /var/lib/boot2docker/profile になった。