Docker の基盤技術は何ですか?
Dockerの基盤技術は次のようになっています。
- LXC(Linux Containers): Dockerは当初LXC技術をベースに開発された。LXCはOSレベルの仮想化技術で、単一のLinuxカーネル上で複数の分離されたLinuxシステムインスタンスを実行できる。
- Linuxネームスペース:DockerはLinuxネームスペースを使用してコンテナの分離を実装します。これには、PID(プロセスID)、ネットワーク、マウントポイント、IPC(プロセス間通信)、UTS(ホスト名とドメイン名)などが含まれます。
- cgroups(Control Group と呼ばれる)を使って、DockerはCPU、メモリ、ディスク、ネットワーク帯域を含む、コンテナのリソース利用を制限および分離します。
- ユニオンファイルシステム:Dockerイメージのレイヤー化とマウントの統合のために、ユニオンファイルシステム(UnionFS)を使用し、イメージの共有と再利用が可能になります。
- コンテナイメージ:Dockerでは、アプリケーションとその依存関係であるすべてのライブラリとファイルをパッケージ化して配布するためにコンテナイメージが利用されます。イメージはDockerの中核的な概念の1つです。
- Dockerエンジンは、Dockerの中核コンポーネントとして、コンテナの作成、実行、停止、削除などのコンテナの管理と制御、そしてイメージのビルド、保管、配信を行います。
こうした基盤となる技術の統合と応用により、Dockerは軽量・高速・ポータブルなコンテナ化アプリケーションの展開と管理が実現しています。