次の方法で共有


Docker コンテナー、イメージ、レジストリ

ヒント

このコンテンツは、.NET Docs で入手できる、またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できる、コンテナー化された .NET アプリケーションの電子ブックである .NET マイクロサービス アーキテクチャからの抜粋です。

コンテナー化された .NET アプリケーションの .NET マイクロサービス アーキテクチャの電子ブックの表紙サムネイル。

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

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

開発者は、イメージのライブラリとして機能し、運用オーケストレーターにデプロイするときに必要なレジストリにイメージを格納する必要があります。 Docker では、 Docker Hub 経由でパブリック レジストリが維持されます。他のベンダーは、 Azure Container Registry など、さまざまなイメージ コレクションのレジストリを提供しています。 または、企業は独自の Docker イメージ用のプライベート レジストリをオンプレミスに持つことができます。

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

Docker の基本的な分類を示す図。

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

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

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

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

  • 機密性のため、画像をパブリックに共有することはできません。

  • イメージと選択したデプロイ環境の間のネットワーク待機時間を最小限に抑える必要があります。 たとえば、運用環境が Azure クラウドの場合は、ネットワーク待機時間を最小限に抑えるために 、イメージを Azure Container Registry に格納することをお勧めします。 同様に、運用環境がオンプレミスの場合は、同じローカル ネットワーク内でオンプレミスの Docker Trusted Registry を使用できるようにする必要があります。