弊社環境がProxyであるために色々とめんどうな設定やらハマって抜け出せないとかあったのでメモ
基本的に反応がなかったりコマンドがまともに機能しなかったり、めんどくさいことしかないです。
Proxyの設定
これを通しとかないとどうしようもないです。
イメージのPullとかもできません。
設定箇所はOSによって違います。
Dockerのバージョンによっても変わる可能性がありますが、一応1.4,1.5では以下の場所でいけてます。
CoreOS
/etc/systemd/system/docker.service
[Service]
Environment="HTTP_PROXY=http://172.17.192.16:8080/"
CentOS
/etc/sysconfig/docker
export http_proxy=http://xxx.xxx.xxx.xxx:8080/
export https_proxy=http://xxx.xxx.xxxx.xxx:8080/
export no_proxy=yyy.yyy.yyy.yyy
Ubuntu
/etc/default/docker
export http_proxy=http://xxx.xxx.xxx.xxx:8080/
export https_proxy=http://xxx.xxx.xxx.xxx:8080/
Docker Toolbox
Docker Toolboxが出て、docker-machine
が使えるようになったのでBoot2Dockerの方は同じようにdocker-machine上に設定をしてください。
docker machineにログインする
boot2dockerにログインするの代わりにこれをどうぞ。
docker-machine ssh {docker-machine-name}
設定はboot2dockerと同じです。
Proxy設定されたDocker Machineを作成する
すでにある場合は上記で設定してもらうとして、新しくProxy設定された状態でMachineを作ることもできます。
docker-machine create -d virtualbox \
--engine-env http_proxy=${http_proxy} \
--engine-env https_proxy=${https_proxy} \
default
Boot2Dockerトラブル
NoProxyを設定しましょう。
Dockerを1.5にしたあたりからハマりました。
それまでは普通に動いてたような気がするんだけど…。
設定してないと以下のようなエラーが出ます。
FATA[0000] An error occurred trying to connect: Get https://192.168.59.103:2376/v1.17/version: Forbidden
環境変数でNO_PROXY
を設定する必要があるので設定しましょう。
Dockerクライアント(MacとかWindowsとか)側です。
export NO_PROXY=xxx.xxx.xxx.xxx,localhost,127.0.0.1,.....
ちなみに、これ設定したのにずっと動かない!って悩んでふとしたときに見たら、IPの最後の一桁抜けて書いてました。
なんとマヌケなことか…。
Docker側のProxyを設定しましょう。
1. boot2dockerにログインする
$ boot2docker ssh
2. 設定を変更する
$ sudo vi /var/lib/boot2docker/profile
export HTTP_PROXY=http://xxx.xxx.xxx.xxx:8880
export HTTPS_PROXY=$HTTP_PROXY
export NO_PROXY=localhost,127.0.0.1,.sock
3. Docker再起動(Boot2docker内)
$ sudo /etc/init.d/docker restart
これでBoot2dockerのクライアント側でDockerコマンド使えます!
Docker Private Registry
Proxyじゃないですけど、ついでに。
プライベートレジストリーを使用する場合、たぶん引っかかると思います。
--insecure-registry
を設定する必要があります。
Boot2Docker
1. boot2dockerにログインする
$ boot2docker ssh
2. 設定を変更する
上記のプロキシの設定の後ろにでも付けてください。
export EXTRA_ARGS="--insecure_registry xxx.xxx.xxx.xxx:<port>"
3. Docker再起動
これで社内のプライベートレジストリへのPush/Pullできます!
Kitematic
Mac向けですが、これもProxy環境下だと初期設定すらできません。
普通にアプリのアイコンクリックで起動だとダメです。
きっとProxy環境下を強いられている人は環境変数やらにhttp_proxy
、https_proxy
を設定しているかと思いますが、
ターミナルから上記環境変数を設定した上でアプリを起動してください。
ここにお世話になりました。
open /opt/homebrew-cask/Caskroom/kitematic/0.5.13/Kitematic\ \(Beta\).app
初回起動はけっこう時間がかかりますが、ほっとけばそのうち起動します。