JFrog DevOps Acceleration Engineer 三宅です。
今回から全 3 回に渡り「コンテナ」について紹介したいと思います。
まず第 1 回目は「コンテナ」の概要や歴史、それを支える OS の技術などを振り返りながらご紹介します。
- コンテナとは?
- アプリケーションの分離
- コンテナを支える技術と歴史
- イメージとは?
- まとめ
一言で「コンテナ」と言っても、色々な見方があると思います。まずは多くの方がそうであるように「コンテナを利用する」側の見方があります。例えば開発者に取っては運用者にアプリケーションをハンドオーバーするときの「便利な箱」にもなるでしょうし、3rd パーティーのコンテナを利用するユーザーからすると Dockerfile が簡単なインストール手順書にもなるのではないでしょうか。
一方、「コンテナを実装する」側の見方もあります。なぜコンテナの中ではファイルシステムやプロセスやネットワークが制限されているのでしょうか? コンテナが「分離するもの」とはなんでしょうか? そのカラクリはどうなっているのでしょうか?
実はコンテナの歴史は長く、筆者が以前在籍していたサン・マイクロシステムズの商用 UNIX OS の Solaris に搭載された Solaris Container がリリースされたのが 2004 年、今から 15 年以上も前のことになります。そのコンテナの歴史も気になるところです。
現在のコンテナ技術は Linux をベースにしたものが中心でしょう。この Linux 上でコンテナ技術を実装するには Linux Namespaces や Linux Control Groups (cgroups) の理解が大切です。またイメージの技術は Union File System を土台にしています。
これらの詳細な内容を先日、弊社ウェビナーでご紹介致しました。当日は 200 名近くの参加があったようです。ご参加いただいた皆様どうもありがとうございました。また当日の録画とスライドは下記にありますので、振り返ってみたい方、見逃した方など適宜参照いただければ幸いです。
何かご質問などあれば、どしどしお寄せください。
それでは、また次回お会いできることを楽しみにしております!