ヒント
このコンテンツは、.NET Docs で入手できる、またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できる、コンテナー化された .NET アプリケーションの電子ブックである .NET マイクロサービス アーキテクチャからの抜粋です。
Docker を使用する場合、開発者はアプリまたはサービスを作成し、そのアプリまたはサービスとその依存関係をコンテナー イメージにパッケージ化します。 イメージとは、アプリケーションまたはサービスと、その構成と依存関係の静的な表現です。
アプリまたはサービスを実行するために、アプリのイメージがインスタンス化され、Docker ホストで実行されるコンテナーが作成されます。 コンテナーは、最初は開発環境または PC でテストされます。
開発者は、イメージのライブラリとして機能し、運用オーケストレーターにデプロイするときに必要なレジストリにイメージを格納する必要があります。 Docker では、 Docker Hub 経由でパブリック レジストリが維持されます。他のベンダーは、 Azure Container Registry など、さまざまなイメージ コレクションのレジストリを提供しています。 または、企業は独自の Docker イメージ用のプライベート レジストリをオンプレミスに持つことができます。
図 2-4 は、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 を使用できるようにする必要があります。
.NET