16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker Toolbox をプロキシ下で利用する

Last updated at Posted at 2016-02-04

Mac(多分Windowsも同じ)でDocker環境を使う時、会社とかだとプロキシサーバが何かと障害になる・・・
プロキシ環境を設定して、dockerコマンドをちゃんと使えるようにしたい。
pullとかで長いこと待たされた挙句にtimeoutとかまじありえん。

boot2dockerの時は

boot2docker を利用していた時は、boot2docker sshコマンドでdokcerサーバにログインして以下のファイル修正でいけた。
ついでなのでタイムゾーンを日本時間に変更して時刻同期を行うようにもしてた。
これをやっておけば、ホストOSをスリープにしてる間にコンテナの時間が止まるを防げる。
PROXYサーバを設定しているような会社では大抵アカウント管理をADでやっているだろうから時刻同期サーバも社内にあるはず。
不明またはそんなの知らんって場合は、ネットで公開されているstratum 2とかの時刻同期サーバのIPでいいんじゃないかな。

/var/lib/boot2docker/bootlocal.sh
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 に配列定義すればいいんだよ。

~/.docker/machines/machine/default/config.json
{
  "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 になった。

16
16
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
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?