Dockerは、ソフトウェアコンテナのコンテナ化プラットフォームとして知られているオープンソースの仮想化テクノロジーです。コンテナは、独自のファイルシステムを含むアプリケーションを単一の複製可能なパッケージに含める手段を提供します。
2013年にソロモン・ハイクスによって開始されたDockerプラットフォームは、Linuxオペレーティングシステム用に特別に構築され、それ以来、コンテナの作成とデプロイを簡素化、自動化できることから、開発者とクラウドサービスプロバイダーの間で広く普及しています。
コンテナテクノロジーを使用すると、アプリケーションとそのすべての依存関係を標準化されたユニットにパッケージ化できるため、コンテナはすぐに仮想化の推奨アプローチになりつつあります。Dockerによる自動化は、その成功に不可欠です。
コンテナは新しいテクノロジーではありません。仮想マシン(VM)と同様に、これらは何年も前から存在している仮想化の形式です。ただし、VMとは異なる点は、フットプリントのサイズです。
VMは仮想オペレーティングシステム全体を作成しますが、コンテナはアプリの実行に必要で、まだホストコンピュータで実行されていないファイルのみを持ち込みます。実行しているシステムのカーネルを共有することで無駄を省き、可能な場合はアプリ間の依存関係も共有します。つまり、パフォーマンスがよりスムーズになり、アプリケーションのサイズが小さくなり、デプロイメントがより速くなります。
Dockerコンテナは効率を提供するコンポーネントであり、Docker Engineはそれを可能にするものです。Dockerコンテナはイメージファイルから実行されます。これは基本的に、特定のオペレーティングシステムで特定のアプリケーションを実行するために作成されるファイルです。Docker Engineはそのイメージファイルを使用してコンテナを構築し、実行します。
軽量のDockerエンジンとそれが提供する簡単な自動化こそが、Dockerを成功したツールにした真の革新的ツールです。コンテナのデプロイを自動化する機能は、Dockerが一躍脚光を浴びるようになった理由です。仮想化環境におけるスケーラビリティの向上という利点を提供し、ビルドとテストの高速化を可能にします。
DevOpsチームは、Dockerを使用することで多くの利点を得ます。OSリソースの即時起動と信頼性の向上により、このプラットフォームはアジャイル開発の高速な反復に最適です。開発環境は、同じバイナリと言語ランタイムを使用して、チーム全体で一貫しています。
コンテナ化されたアプリケーションはシステム全体でリソースの使用と環境が一貫しているため、DevOpsエンジニアは本番環境でも自分のマシンと同じようにアプリが動作することを確信することができます。また、Dockerコンテナはコンパイルの問題を解決し、開発プロセスにおける複数の言語バージョンの使用を簡素化するのにも役立ちます。
本記事は米国Sumo Logic社のサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。
0 Comments