【Docker for Mac】プライベートレジストリ --insecure-registry の設定方法(https通信→http通信への切り替え)


前置き

Docker for Macで他サーバのregistryにHTTP通信したい方必見。

Docker for Mac で、他サーバのregistryにデフォルトのHTTPS通信でなく、HTTP通信をするための設定を記載すべきファイルが特定できずハマったため記載します。

作成したdockerのimageを保存する場合、一般的には以下の公開レジストリに保存します。

docker hub

セキュリティの都合などで、サーバの構成等の情報を公にしたくない場合は、以下のツールを使用して簡単プライベートリポジトリを作成することができます。

registry

ただここで一つ落とし穴が。
他のサーバに立てたregistryに対しての通信はデフォルトでHTTPS通信になっています。
この場合クライアント側で何かしら設定してあげないと、通信できません。
考えられる設定としては以下のとおり。
①証明書を買う
②HTTP通信の設定にする
③オレオレ証明書

今回は社内サーバに対しての通信なので、HTTP通信を使用するパターンで問題ないと判断。
②の方法を採用しました。

手順

以下を参照すると、--insecure-registryという値を設定すれば良いよう。
ただ記載してある変更ファイルは。centos用のようだ。
https://docs.docker.com/registry/insecure/

ここで詰まりました。が、なんとか設定箇所を判定しました。
なんとGUIから設定できます!
Prefarencesを選択

Insecure registries に<ホスト名:port>の形式で記入

GUIは盲点でした・・・。
Docker for MacはDockerToolと比べて、GUIで操作できる部分が増えていて、親しみやす印象を覚えました。

おまけ

Docker for Mac以外の書き換え方

docker-machine

$docker-machine ssh default \
"echo 'EXTRA_ARGS=\"--insecure-registry <host.sever.name:port>\"' \
| sudo tee -a /var/lib/boot2docker/profile \
&& sudo /etc/init.d/docker restart"

centos7

$echo 'DOCKER_OPTS=\"--insecure-registry <host.sever.name:port>\"' \
| sudo tee -a /etc/sysconfig/docker \
&& sudo service docker  restart

自分のブログからの転載です
http://gimpop.hatenablog.com/entry/2016/06/28/195725