コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう
コンテナ技術を適切に活用するには、コンテナが「どうやって」動いているかを学びたいところ。はてなのエンジニアhayajo_77さんがコンテナの要素技術の勘所を解説します。
こんにちは。株式会社はてなでサーバー監視サービス「Mackerel」のSREを務めるhayajo_77(
さて、コンテナ技術はDockerの登場がきっかけとなり、本格的に活用が始まりました。現在はKubernetesを始めとするコンテナオーケストレーションツールや AWS, GCP, Azure などのクラウドサービスで提供されるコンテナマネジメントサービスを採用したサービス運用事例が数多く紹介されており、コンテナ技術は「理解する」フェイズから「利用する」フェイズに移ってきています。
コンテナそのものは上記のツールやサービスにより高度に抽象化されており、その要素技術に直接触れる機会はないかもしれません。ですが、効率の良い開発・運用をするためにはその仕組や特性を知ることはとても重要です。また、普及にともないgVisor, Kata Containers, Nabla Containers, Firecrackerなど、コンテナに対する新しいアプローチを持ったツールやサービスも出てきています。
これらのツールやサービスの特性、また「解決しようとしている問題」を理解し、自身が運用するサービスにマッチする技術を選択する上でも、コンテナ技術の基礎を理解することはとても大切です。
こうした背景から、本稿ではコンテナを構成する代表的な要素技術を解説します。コマンド例を多く載せているので、ぜひ手元で実行して理解を深めてください。本記事が少しでも開発・運用の一助となれば幸いです。
- コンテナとは
- コンテナを作ってみよう
- コンテナを構成する要素技術
- Namespace
- cgroup
- Capability
- DockerのデフォルトCapability
- chrootとpivot_root
- Copy On Write(COW)ファイルシステム
- ネットワークリソースの隔離
- さらに掘り下げるための資料
コンテナとは
エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
続きをお読みいただけます(無料)。
登録ボタンを押すと、利用規約とプライバシーポリシーに同意したことになります。

- すべての過去記事を読める
- 過去のウェビナー動画を
視聴できる - 企業やエージェントから
スカウトが届く