DevOpsを加速する、JFrog日本法人メンバーによるブログです。JFrog ArtifactoryやXrayといった自社ツールはもちろん、CI/CDやコンテナ技術(DockerやKubernetes)などDevOpsの一般的な内容も扱います。その他、日本でのDevOps事例紹介やお楽しみコンテンツも掲載予定です。

JFrogならではの面白くて役に立つブログを目指しますので、お楽しみに!

猿でもわかるコンテナ

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 名近くの参加があったようです。ご参加いただいた皆様どうもありがとうございました。また当日の録画とスライドは下記にありますので、振り返ってみたい方、見逃した方など適宜参照いただければ幸いです。

www.youtube.com

speakerdeck.com

何かご質問などあれば、どしどしお寄せください。

それでは、また次回お会いできることを楽しみにしております!