Proxy環境下でdocker toolbox + docker-compseを使えるようにする(windows7)
やること
普段はMac+Docker for Macの環境でアプリ開発を行っているのですが、会社内のプロキシネットワーク下+Windows7の環境でDockerを使えるようにする設定です。
Docker Toolboxのインストール
公式サイトからダウンロードしてインストールします。
Docker Quickstart Terminal というソフトウェアもインストールされるので実行するとターミナルが開きます。以降の作業はこのターミナルで行います。
Dockerプロジェクトの作成(docker-compose)
以下ファイルを作成して適当な作業ディレクトリに配置します。
docker-compose.yml
hello: image: hello-world:latest
NOプロキシ設定と動作確認
以下NO_PROXY設定をexportします。小文字が大事!
$ export no_proxy=192.168.99.100
docker-compose up コマンドで hello_1 | Hello from Docker! が表示されたら成功です。
$ cd ${docker-compose.ymlを置いたディレクトリ} $ docker-compose up
プロキシ設定は既に設定済みの前提なので最終形は以下のようになります。
※自身のプロキシサーバーが設定されていることを確認してください。
$ env | grep proxy http_proxy=http://login:plainpassword@proxy.corp.com:8000 https_proxy=http://login:plainpassword@proxy.corp.com:8000 no_proxy=192.168.99.100
はまったところ
DockerToolboxインストール後にターミナルでdocker psを打つと Forbiddenになりました。
$ docker ps error during connect: Get https://192.168.99.100:2376/v1.33/containers/json: Forbidden
ネットで探すとNO_PROXYの設定でいけるとのことで設定するとうまくいきました。
$ export NO_PROXY=192.168.99.100 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
しかし、docker-compose は繋がりません。
$ docker-compose --verbose up (省略) requests.exceptions.ProxyError: HTTPSConnectionPool(host='192.168.99.100', port= 2376): Max retries exceeded with url: /v1.21/version (Caused by ProxyError('Cann ot connect to proxy.', error('Tunnel connection failed: 403 Forbidden',))) Failed to execute script docker-compose
小一時間悩んだ後、小文字にしたらいけました。。。
まとめ
docker toolbox:windows の no_proxy は、dockerコマンドは大文字でもOKですが、docker-composeは小文字じゃないとダメ!
※バージョンに依存する問題なのかもしれません。以下のバージョンを利用する際は参考にしてみてください。
$ docker-compose.exe -v docker-compose version 1.16.1, build 6d1ac219 $ docker -v Docker version 17.10.0-ce, build f4ffd25