コンテナーを使用してアプリケーションを構築、共有、実行する
ソフトウェアを開発、出荷、展開するための標準化されたユニットへのパッケージ化
コンテナは、コードとそのすべての依存関係をパッケージ化するソフトウェアの標準単位であり、アプリケーションをあるコンピューティング環境から別のコンピューティング環境へ迅速かつ確実に実行できます。Dockerコンテナイメージは、コード、ランタイム、システムツール、システムライブラリ、設定など、アプリケーションの実行に必要なすべてのものを含む、軽量でスタンドアロンの実行可能なソフトウェアパッケージです。
コンテナイメージは実行時にコンテナになり、Dockerコンテナの場合、イメージはDockerエンジンで実行されるときにコンテナになります。LinuxベースとWindowsベースの両方のアプリケーションで利用できるコンテナ化されたソフトウェアは、インフラストラクチャに関係なく、常に同じように実行されます。コンテナは、ソフトウェアをその環境から分離し、開発とステージングなどの違いに関係なく、ソフトウェアが均一に動作することを保証します。
Docker Engine で実行される Docker コンテナ:
標準:Docker はコンテナの業界標準を作成し、どこにでも持ち運びできるようにしました
軽量:コンテナはマシンのOSシステムカーネルを共有するため、アプリケーションごとにOSを必要とせず、サーバーの効率を高め、サーバーとライセンスのコストを削減します
牢:コンテナ内のアプリケーションはより安全であり、Dockerは業界で最も強力なデフォルトの分離機能を提供します
コンテナイメージは実行時にコンテナになり、Dockerコンテナの場合、イメージはDockerエンジンで実行されるときにコンテナになります。LinuxベースとWindowsベースの両方のアプリケーションで利用できるコンテナ化されたソフトウェアは、インフラストラクチャに関係なく、常に同じように実行されます。コンテナは、ソフトウェアをその環境から分離し、開発とステージングなどの違いに関係なく、ソフトウェアが均一に動作することを保証します。
Docker Engine で実行される Docker コンテナ:
標準:Docker はコンテナの業界標準を作成し、どこにでも持ち運びできるようにしました
軽量:コンテナはマシンのOSシステムカーネルを共有するため、アプリケーションごとにOSを必要とせず、サーバーの効率を高め、サーバーとライセンスのコストを削減します
牢:コンテナ内のアプリケーションはより安全であり、Dockerは業界で最も強力なデフォルトの分離機能を提供します

Dockerコンテナは、Linux、Windows、データセンター、クラウド、サーバーレスなど、いたるところにあります。
Dockerコンテナテクノロジーは、オープンソースのDockerエンジンとして2013年に発売されました。
これは、コンテナ、特にLinuxの世界では、cgroupsとnamespaceと呼ばれるプリミティブに関する既存のコンピューティング概念を活用しました。Dockerのテクノロジーは、アプリケーションの依存関係をインフラストラクチャから分離するという開発者とシステムオペレーターの要件に焦点を当てている点でユニークです。
Linux の世界での成功により、Microsoft とのパートナーシップが推進され、Docker コンテナとその機能が Windows Server に導入されました。
Dockerとそのオープンソースプロジェクトから利用可能なテクノロジーであるMobyは、すべての主要なデータセンターベンダーとクラウドプロバイダーで活用されています。これらのプロバイダーの多くは、コンテナネイティブのIaaSオファリングにDockerを活用しています。さらに、主要なオープンソースのサーバーレスフレームワークは、Dockerコンテナテクノロジーを利用しています。
これは、コンテナ、特にLinuxの世界では、cgroupsとnamespaceと呼ばれるプリミティブに関する既存のコンピューティング概念を活用しました。Dockerのテクノロジーは、アプリケーションの依存関係をインフラストラクチャから分離するという開発者とシステムオペレーターの要件に焦点を当てている点でユニークです。
Linux の世界での成功により、Microsoft とのパートナーシップが推進され、Docker コンテナとその機能が Windows Server に導入されました。
Dockerとそのオープンソースプロジェクトから利用可能なテクノロジーであるMobyは、すべての主要なデータセンターベンダーとクラウドプロバイダーで活用されています。これらのプロバイダーの多くは、コンテナネイティブのIaaSオファリングにDockerを活用しています。さらに、主要なオープンソースのサーバーレスフレームワークは、Dockerコンテナテクノロジーを利用しています。

コンテナと仮想マシンの比較
コンテナーと仮想マシンには、リソースの分離と割り当ての利点は似ていますが、コンテナーはハードウェアではなくオペレーティング システムを仮想化するため、機能が異なります。 コンテナはよりポータブルで効率的です。

コンテナー
コンテナーは、コードと依存関係を一緒にパッケージ化するアプリ レイヤーの抽象化です。 複数のコンテナーを同じマシン上で実行し、OS カーネルを他のコンテナーと共有し、それぞれがユーザー空間で分離されたプロセスとして実行できます。 コンテナーは VM よりも占有する領域が少なく (コンテナー イメージのサイズは通常数十 MB です)、より多くのアプリケーションを処理でき、必要な VM とオペレーティング システムも少なくて済みます。

仮想マシン
仮想マシン (VM) は、1 台のサーバーを多数のサーバーに変える物理ハードウェアを抽象化したものです。 ハイパーバイザーを使用すると、複数の VM を 1 台のマシンで実行できます。 各VMには、オペレーティングシステム、アプリケーション、必要なバイナリ、ライブラリの完全なコピーが含まれており、数十GBを占めます。 VM の起動が遅くなることもあります。
コンテナと仮想マシンの連携
コンテナーと VM を一緒に使用すると、アプリのデプロイと管理に大きな柔軟性がもたらされます

コンテナ規格と業界のリーダーシップ
2013 Dockerの発売は、ソフトウェアコンテナの民主化により、アプリケーション開発に革命をもたらしました。Dockerは、ポータブルで柔軟性があり、デプロイが容易なLinuxコンテナテクノロジーを開発しました。Docker は libcontainer をオープンソース化し、世界中の貢献者コミュニティと提携して開発を進めました。2015年6月、Dockerは、コンテナエコシステムの成長と成熟に伴う標準化の確立を支援するために、コンテナイメージの仕様とランタイムコード(現在はruncとして知られています)をOpen Container Initiative(OCI)に寄贈しました。
この進化に続いて、Dockerは、Dockerが 2017年にCloud Native Computing Foundation(CNCF)に寄贈したcontainerdプロジェクトで恩返しを続けています。containerd は、runc を活用する業界標準のコンテナランタイムであり、シンプルさ、堅牢性、移植性に重点を置いて作成されました。containerd は、Docker Engine のコア コンテナ ランタイムです。
この進化に続いて、Dockerは、Dockerが 2017年にCloud Native Computing Foundation(CNCF)に寄贈したcontainerdプロジェクトで恩返しを続けています。containerd は、runc を活用する業界標準のコンテナランタイムであり、シンプルさ、堅牢性、移植性に重点を置いて作成されました。containerd は、Docker Engine のコア コンテナ ランタイムです。

あなたにぴったりのプランをお選びください
Docker は個人的なプロジェクトだけのものではありません。チームを強化し、ワークフローを合理化するための理想的なプランを見つけてください。