
56
Docker Engine は、OSリソースを仮想化してコンテナに見せるしく
みを提供しています(図2-15)。
Docker Engine は、Linux の cgroups機能を使用して、コンテナ内で実行
されるアプリケーションに対し、CPU、メモリ、ネットワーク、ディスク
アクセスなどのリソースを割り当てます。また、Linuxのnamespace機能
を使用して、コンテナ内で実行されるアプリケーションに独自のネットワ
ーク、ファイルシステム、プロセス空間を提供します。
Docker Engine は、これらの機能を使用して、コンテナ内で実行される
アプリケーションに必要なリソースを仮想化し、ホストOSのリソースを
直接使用できるようにします。これによって、アプリケーションの実行環
境を標準化し、アプリケーションのデプロイメントが自動化できるように
なります。
コンテナ技術を使用すれば、アプリケーションをコンテナにパッケージ
化し、異なる環境でも実行できるようになります(図2-16)。
例えば、コンテナ環境を使用することで、開発環境と本番環境で同じア
プリケーション環境を使用することが容易になるので、アプリケーション
を開発環境から本番環境へスムーズに移行できます。
また、コンテナは、異なるクラウドサービスの間であっても、簡単にア
プリケーションを移動できるため、クラウド移行の際にも便利です。さら
にコンテナは、クラウド環境とオンプレミス環境の間でも活用できるた
め、ハイブリッドクラウド環境でのアプリケーションの管理にも向いてい ...