コンテナーを使用してアプリケーションを構築、共有、実行する
ソフトウェアを開発、出荷、展開するための標準化されたユニットへのパッケージ化
コンテナは、コードとそのすべての依存関係をパッケージ化するソフトウェアの標準ユニットであり、アプリケーションがあるコンピューティング環境から別のコンピューティング環境に迅速かつ確実に実行されるようにします。 Dockerコンテナイメージは、コード、ランタイム、システムツール、システムライブラリ、設定など、アプリケーションの実行に必要なすべてのものを含む、軽量でスタンドアロンの実行可能なソフトウェアパッケージです。
コンテナー イメージは実行時にコンテナーになり、Docker コンテナーの場合は、イメージが Docker エンジンで実行されるとコンテナーになります。 LinuxベースのアプリケーションとWindowsベースのアプリケーションの両方で使用できるコンテナ化されたソフトウェアは、インフラストラクチャに関係なく、常に同じように実行されます。 コンテナはソフトウェアを環境から分離し、開発とステージングの違いなどに関係なく、ソフトウェアが均一に機能することを保証します。
Docker Engine で実行される Docker コンテナー:
- 標準: Dockerはコンテナの業界標準を作成したので、どこにでも移植できます
- 軽量: コンテナはマシンのOSシステムカーネルを共有するため、アプリケーションごとにOSを必要とせず、サーバーの効率を高め、サーバーとライセンスのコストを削減します
- 牢: アプリケーションはコンテナ内でより安全であり、Dockerは業界で最も強力なデフォルトの分離機能を提供します
Dockerコンテナは、Linux、Windows、データセンター、クラウド、サーバーレスなど、いたるところにあります。
Dockerコンテナテクノロジーは、オープンソースの Dockerエンジンとして2013年に発売されました。
コンテナ、特にLinuxの世界では、cgroupと名前空間と呼ばれるプリミティブに関する既存のコンピューティングの概念を活用しました。 Dockerのテクノロジーは、アプリケーションの依存関係をインフラストラクチャから分離するための開発者とシステムオペレーターの要件に焦点を当てているため、独特です。
Linuxの世界での成功は、Dockerコンテナとその機能をWindows ServerにもたらしたMicrosoftとのパートナーシップを推進しました。
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は2017年にDockerがCloud Native Computing Foundation(CNCF)に寄付したコンテナプロジェクトで恩返しを続けています。 containerd は、runc を活用する業界標準のコンテナ ランタイムであり、シンプルさ、堅牢性、移植性に重点を置いて作成されました。 containerd は、Docker エンジンのコア コンテナー ランタイムです。
あなたにぴったりのプランをお選びください
Docker は個人的なプロジェクトだけのものではありません。チームを強化し、ワークフローを合理化するための理想的なプランを見つけてください。