#前置き
Docker for Macで他サーバのregistryにHTTP通信したい方必見。
Docker for Mac で、他サーバのregistryにデフォルトのHTTPS通信でなく、HTTP通信をするための設定を記載すべきファイルが特定できずハマったため記載します。
作成したdockerのimageを保存する場合、一般的には以下の公開レジストリに保存します。
###docker hub
https://hub.docker.com/
セキュリティの都合などで、サーバの構成等の情報を公にしたくない場合は、以下のツールを使用して簡単プライベートリポジトリを作成することができます。
####registry
https://docs.docker.com/docker-trusted-registry/overview/
ただここで一つ落とし穴が。
他のサーバに立てた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