クラフ:「Dockerイメージは、Docker社が運営している『Docker Hub』で公開されているよ。Dockerイメージを管理している外部サーバーなんかは通称『レジストリ』と言うんだ。」
サトル:「レジストリについて、もう少し詳しく教えてくれない?」
クラフ:「もちろんだよ。Dockerイメージの格納庫であるレジストリには、その中に『リポジトリ』と呼ばれる階層があるんだ。リポジトリの中に、ダウンロードするイメージが入っているよ。リポジトリとは、イメージにタグをつけて、そのバージョンを識別管理したり、保管する単位なんだ」
イメージは「Docker Hub」(レジストリ)に格納されている
ディア:「なるほど。レジストリという大きな箱の中にリポジトリという階層があって、
そこに保管されているイメージをダウンロードして使うんだね」
クラフ:「そうだよ。レジストリにはDocker以外にも種類があるんだ」
●パブリックレジストリ:誰でも利用できる公共のレジストリ(ex. Docker Hub、Quay)
●プライベートレジストリ:アクセス元を制限した専用レジストリ
(ex. GitLab、Garbor、registy)
●クラウドサービスのレジストリ:パブリッククラウドのサービスメニュー
(ex. Azure Container Registry、 Amazon Elastic Container Registry(Amazon ECR)、Google Container Registry)
「レジストリ」内に「リポジトリ」があり、「リポジトリ」からイメージを展開
サトル:「イメージを利用するとどんなメリットがあるの?」
クラフ:「そうだね。まず、ソースコードをイチから書く必要がないよ。また、既存であるテスト済みの優秀なコードを利用できる点もあるね。そして、複雑な設定作業も簡素化できるんだ。コンテナ環境があれば、簡単にコピー可能な点もメリットだね。もちろん、コンテナだから異なる環境下でも稼働できるのさ」
ディア:「イメージをダウンロードして展開すれば、アプリケーションを素早く開発できるんだね」
クラフ:「お察しの通りだよ。また、カスタマイズしたイメージを作成できる点も見逃せないポイントなんだ」
サトル:「イメージをカスタマイズするってどういうことなの?」
クラフ:「カスタイマイズなしの場合から説明していこう。通常、Docker Hubからイメージをダウンロードしてコンテナを起動して、それに新しい設定を加えることができるよ。たとえば、汎用的な基本イメージである『Ubuntu』や『CentOS』をベースにコンテナ起動後に個別設定を加えることになるんだ」
ディア:「その場合、いちいち自社用の設定を加えるのって大変になるような気がするね」
クラフ:「そうだね。ベースのイメージから独自のカスタムイメージを作成して、プライベートレジストリに格納しておくと、自社向けのイメージをすぐに展開して、そのまま使うことができるんだ。また、都度同じ設定をする必要がなくなるよ。設定や調整のミスというヒューマンエラーを排除できるし、一度設定したものはコピーしてすぐに配布できるからとても便利なんだ」
ベースから「カスタムイメージ」を作成し、またレジストリに格納できる