Docker コンテナー、イメージ、レジストリについて学習する

ヒント

このコンテンツは、 .NET Docs で入手できる、またはオフラインで読み取ることができる無料のダウンロード可能な PDF として利用できる、Microsoft プラットフォームとツールを備えた eBook、コンテナー化された Docker アプリケーション ライフサイクルからの抜粋です。

Containerized Docker Application Lifecycle with Microsoft Platform and Tools eBook cover thumbnail.

Docker を使用する場合、アプリケーションやサービスを作成し、それとその依存関係をコンテナー イメージにパッケージ化します。 イメージとは、アプリケーションまたはサービスと、その構成と依存関係の静的な表現です。

アプリケーションまたはサービスを実行するために、アプリケーションのイメージはインスタンス化され、コンテナーが作成されます。このコンテナーが Docker ホスト上で実行されます。 コンテナーは、最初に開発環境または PC でテストされます。

イメージをレジストリに保存します。レジストリはイメージのライブラリとして機能します。 実稼働環境のオーケストレーターにデプロイする場合にレジストリが必要です。 Docker は Docker Hub 経由で公開レジストリを保守します。他のベンダーは、Azure Container Registryを含むさまざまなイメージのコレクション用のレジストリを用意しています。 また、企業は自社の Docker イメージ用に非公開のレジストリをオンプレミスに持つことができます。

図 1-4 は、Docker のイメージとレジストリが他のコンポーネントとどのように関係しているかを示しています。 また、ベンダーから提供される複数のレジストリも示しています。

A diagram showing the basic taxonomy in Docker.

図 1-4 Docker の用語と概念の分類

レジストリはイメージが格納される本棚のようなものであり、サービスや Web アプリを実行するコンテナーを構築するためにプルして使用できます。 オンプレミスとパブリック クラウド上にプライベート Docker レジストリがあります。 Docker Hub はエンタープライズ級のソリューションである Docker Trusted Registry と共に Docker によって管理されるパブリック レジストリであり、Azure では Azure Container Registry を提供しています。 AWS や Google などにもコンテナー レジストリがあります。

レジストリにイメージを配置することによって、フレームワーク レベルで、すべての依存関係を含む静的で不変なアプリケーション ビットを格納できます。 それにより、複数の環境でイメージをバージョン管理し、デプロイできるため、一貫したデプロイ ユニットを提供できます。

オンプレミスまたはクラウドでホストされる非公開のイメージ レジストリは、次の場合に推奨されます。

  • 機密保持のためにイメージを一般公開して共有することができない場合。

  • イメージと選択した展開環境間のネットワーク待機時間を最小限に抑えたい場合。 たとえば、実稼働環境が Azure の場合は、Azure Container Registry にイメージを保存して、ネットワークの待機時間を最小限に抑える方法があります。 同様に、実稼働環境がオンプレミスの場合は、同じローカル ネットワーク内でオンプレミスの Docker Trusted Registry を使用できるようにする方法があります。