LoginSignup
125
131

More than 5 years have passed since last update.

Proxy環境下のDockerトラブルシューティング

Last updated at Posted at 2015-03-31

弊社環境がProxyであるために色々とめんどうな設定やらハマって抜け出せないとかあったのでメモ

基本的に反応がなかったりコマンドがまともに機能しなかったり、めんどくさいことしかないです。

Proxyの設定

これを通しとかないとどうしようもないです。
イメージのPullとかもできません。
設定箇所はOSによって違います。

Dockerのバージョンによっても変わる可能性がありますが、一応1.4,1.5では以下の場所でいけてます。

CoreOS

/etc/systemd/system/docker.service

/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_proxyhttps_proxyを設定しているかと思いますが、
ターミナルから上記環境変数を設定した上でアプリを起動してください。

ここにお世話になりました。

open /opt/homebrew-cask/Caskroom/kitematic/0.5.13/Kitematic\ \(Beta\).app

初回起動はけっこう時間がかかりますが、ほっとけばそのうち起動します。

125
131
2

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
125
131