次の方法で共有


Docker の用語

ヒント

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

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

このセクションでは、Docker を詳しく理解する前に理解しておく必要がある用語と定義を示します。 詳細な定義については、Docker によって提供される広範な 用語集 を参照してください。

コンテナー イメージ: コンテナーの作成に必要なすべての依存関係と情報を含むパッケージ。 イメージには、すべての依存関係 (フレームワークなど) と、コンテナー ランタイムによって使用されるデプロイと実行の構成が含まれます。 通常、イメージは、コンテナーのファイルシステムを形成するために互いに積み重ねられたレイヤーである複数の基本イメージから派生します。 イメージは、作成されると変更できません。

Dockerfile: Docker イメージを構築するための手順を含むテキスト ファイル。 これはバッチ スクリプトのようなもので、最初の行は基本イメージを最初に示し、必要なプログラムのインストール、ファイルのコピーなどの指示に従って、必要な作業環境が得られるまで行います。

ビルド: Dockerfile によって提供される情報とコンテキストに基づいてコンテナー イメージを構築するアクションと、イメージがビルドされているフォルダー内の追加ファイル。 次の Docker コマンドを使用してイメージをビルドできます。

docker build

コンテナー: Docker イメージのインスタンス。 コンテナーは、単一のアプリケーション、プロセス、またはサービスの実行を表します。 これは、Docker イメージの内容、実行環境、および標準の一連の命令で構成されます。 サービスをスケーリングするときは、同じイメージからコンテナーの複数のインスタンスを作成します。 または、バッチ ジョブで同じイメージから複数のコンテナーを作成し、各インスタンスに異なるパラメーターを渡すことができます。

ボリューム: コンテナーで使用できる書き込み可能なファイルシステムを提供します。 イメージは読み取り専用ですが、ほとんどのプログラムはファイルシステムに書き込む必要があるため、ボリュームはコンテナー イメージの上に書き込み可能なレイヤーを追加するため、プログラムは書き込み可能なファイルシステムにアクセスできます。 このプログラムは、階層化されたファイルシステムにアクセスしているのを知りません。これは通常どおりのファイルシステムです。 ボリュームはホスト システムに存在し、Docker によって管理されます。

タグ: (バージョン番号またはターゲット環境に応じて) 同じイメージの異なるイメージまたはバージョンを識別できるように、画像に適用できるマークまたはラベル。

マルチステージ ビルド: Docker 17.05 以降の機能であり、最終的なイメージのサイズを小さくするのに役立ちます。 たとえば、SDK を含む大きな基本イメージは、コンパイルと発行に使用でき、その後、小さなランタイム専用の基本イメージを使用してアプリケーションをホストできます。

リポジトリ (リポジトリ): イメージのバージョンを示すタグでラベル付けされた、関連する Docker イメージのコレクション。 一部のリポジトリには、SDK (重い) を含むイメージ、ランタイムのみを含むイメージ (軽量) など、特定のイメージの複数のバリエーションが含まれています。これらのバリアントはタグでマークできます。 単一のリポジトリには、Linux イメージや Windows イメージなどのプラットフォーム バリアントを含めることができます。

レジストリ: リポジトリへのアクセスを提供するサービス。 ほとんどのパブリック イメージの既定のレジストリは Docker Hub (組織として Docker が所有) です。 通常、レジストリには複数のチームのリポジトリが含まれます。 多くの場合、企業には、作成したイメージを格納および管理するためのプライベート レジストリがあります。 Azure Container Registry も別の例です。

マルチアーキテクチャ イメージ: マルチアーキテクチャ (または マルチプラットフォーム) の場合、Docker が実行されているプラットフォームに応じて、適切なイメージの選択を簡略化する Docker 機能です。 たとえば、Dockerfile がレジストリから基本イメージ FROM mcr.microsoft.com/dotnet/sdk:8.0 を要求すると、Docker が実行されているオペレーティング システムとバージョンに応じて、実際には 8.0-nanoserver-ltsc20228.0-nanoserver-1809 または 8.0-bullseye-slim が取得されます。

Docker Hub: イメージをアップロードして操作するためのパブリック レジストリ。 Docker Hub には、Docker イメージのホスティング、パブリックまたはプライベート レジストリ、ビルド トリガーと Web フック、GitHub および Bitbucket との統合が用意されています。

Azure Container Registry: Azure で Docker イメージとそのコンポーネントを操作するためのパブリック リソース。 これにより、Azure でのデプロイに近いレジストリが提供され、アクセスを制御できるため、Azure Active Directory のグループとアクセス許可を使用できます。

Docker Trusted Registry (DTR):組織のデータセンターとネットワーク内に存在するようにオンプレミスにインストールできる Docker レジストリ サービス (Docker から)。 企業内で管理する必要があるプライベート イメージに便利です。 Docker Trusted Registry は、Docker Datacenter 製品の一部として含まれています。

Docker Desktop: コンテナーをローカルでビルド、実行、テストするための Windows および macOS 用の開発ツール。 Docker Desktop for Windows は、Linux コンテナーと Windows コンテナーの両方の開発環境を提供します。 Windows 上の Linux Docker ホストは、 Hyper-V 仮想マシンに基づいています。 Windows コンテナーのホストは、Windows に直接基づいています。 Docker Desktop for Mac は、Apple Hypervisor フレームワークと xhyve ハイパーバイザーに基づいており、macOS 上の Linux Docker ホスト仮想マシンを提供します。 Docker Desktop for Windows と for Mac は、Oracle VirtualBox に基づく Docker ツールボックスに置き換えられます。

Compose: 複数コンテナー アプリケーションを定義して実行するためのメタデータを含むコマンド ライン ツールと YAML ファイル形式。 環境に応じて値をオーバーライドできる 1 つ以上の.yml ファイルを持つ複数のイメージに基づいて、1 つのアプリケーションを定義します。 定義を作成したら、Docker ホスト上のイメージごとにコンテナーを作成する 1 つのコマンド (docker-compose up) を使用して、マルチコンテナー アプリケーション全体をデプロイできます。

クラスター: 単一の仮想 Docker ホストであるかのように公開される Docker ホストのコレクション。そのため、アプリケーションはクラスター内の複数のホストに分散されたサービスの複数のインスタンスにスケーリングできます。 Docker クラスターは、Kubernetes、Azure Service Fabric、Docker Swarm、Mesosphere DC/OS を使用して作成できます。

オーケストレーター: クラスターと Docker ホストの管理を簡略化するツール。 オーケストレーターを使用すると、コマンド ライン インターフェイス (CLI) またはグラフィカル UI を使用して、イメージ、コンテナー、ホストを管理できます。 コンテナー ネットワーク、構成、負荷分散、サービス検出、高可用性、Docker ホスト構成などを管理できます。 オーケストレーターは、ノードのコレクション全体でワークロードの実行、分散、スケーリング、復旧を行います。 通常、オーケストレーター製品は、Kubernetes や Azure Service Fabric などのクラスター インフラストラクチャを提供する製品と同じ製品です。