‫Dockerレジストリ｡ ネットワーク上に非公開で保存するレジストリになることは､
‫以前にも紹介しました｡
‫実は､ Docker/distributionのGitHubレポの一部なんです｡
‫もしRegistryを探しに行ったのなら､ 念のためお伝えしておきますが､ GitHubにはRegistryの古いバージョンがあり､
‫レガシーになっています｡ はっきりとそう書いてあるだろう｡ 現在､ 私たちが使っているV2レジストリはGoで書き直され､
‫Distribution code repositoryで見ることができますが､ おそらくGitHubから使うことはなく､ Docker
‫Hubから使うことになると思われます｡ DockerにはRegistry用の公式イメージがあらかじめ用意されているので､
‫Docker pull registryというだけの簡単な操作で利用することができます｡ コンテナを個人で保管するためのバックエンドレジストリとしては､
‫かなりデファクト的な存在だと言えるでしょう｡
‫かなり素っ気ないです｡
‫Web GUIがないんです｡
‫Docker Hubなどのサードパーティーのサービスとは絶対に違う｡ デフォルトでは､ 証明書と基本認証をサポートしていますが､
‫これらはデフォルトでは有効になっておらず､ 認証は実際にはすべてかゼロかのどちらかです｡
‫RBACやロールベースのアクセスコントロールではありません｡
‫むしろ､ Apacheのhtaccessのように､ ユーザー名とパスワードさえ通れば､ すべてに対して読み取り/書き込みのアクセス権があるのです｡
‫おそらく､ より企業的でスケーラブルにするための何らかのツールがなければ､ 小規模なチームでしか使えないでしょう｡
‫しかし､ その核となるのは､ これから扱う大きな画像を扱うためのWeb APIとストレージシステムなのです｡
‫また､ 多くのストレージドライバが内蔵されており､ バックエンドのストレージをS3やAzure､ Alibaba､
‫Google Cloudに置くことができるのも嬉しい点です｡ OpenStackのSwiftドライバもありますが､
‫ここではデフォルトのローカルを使うことにします｡
‫基本的には､ イメージ内のローカルファイルシステム､ またはホスト上のボリュームを使用することを意味するだけです｡
‫レジストリのインストールを始める前に､ このセクションにあるリソースリンクのいくつかに注目してください｡
‫最初のものは､ TLSによる基本的なセットアップで､ 明らかにTLSは良いことなので､ 安全でないレジストリオプションを有効にする必要はありません｡
‫2つ目は､ Dockerによるガベージコレクション周りの参考記事です｡
‫レジストリは､ 実際に使い始めるとデータ量が多くなり､ 特に画像を何度もプッシュしていると､
‫ディスク容量を食いつぶしてしまうことがあるんです｡
‫ですから､ ストレージドライバ周りの判断に少し注意を払う必要があります｡ また､
‫同様に､ 古いものを一掃し､
‫ストレージを維持しようとするガベージコレクションに関するこの記事も参照してください｡
‫最後に､ とてもクールなオプションとしてレジストリーミラーがあります｡
‫もし､ 本番環境にデプロイする際に､ 多くのベースイメージをHubに依存したくないという懸念がある場合､ Registryの機能として､
‫プロキシモードを有効にすることができます｡
‫何十台､
‫何百台ものサーバーがある場合､ すべてのマシンにUbuntuのイメージをHubからダウンロードするのではなく､
‫帯域を最適化したい場合には､ これはとても便利な機能です｡
‫そうだろ？
‫このプロキシは､ よりメタルに近い場所に設置することができ､ さらにハブに問題が発生した場合に備えてフェイルオーバーを行うこともできます｡
‫画像のコピーは今まで通り現地で入手可能です｡