[コンテナの歴史]Dockerができるまで 第一部 〜集合知を集めて歴史を知ろう〜

今回Dokcerの歴史を説明しようと思った動機

  • 2年前、インフラ部隊のメンバーにDockerの勉強会を開催するために、レビューの時点でせっかくインフラのメンバーに説明するのだったら、背景・歴史を説明したほうがよりよいとアドバイスをもらったため、背景・歴史を説明するようにした。
  • しかーし、先輩方が4名ほど、たたき上げのアラフォー・アラフィフなインフラエンジニアであったために、まさかりをいっぱい投げられ、めげずに説明をしたことからことを発しています。

目的(ゴール)

  • 時代や目的・背景を知って、コンテナについて理解を深める。
  • どのような構成要素によってDockerが作られているかを知る。

自己紹介

Sayaka

  • 名前:さやか
  • twitter:@flower_norn
  • 趣味:
    • 旅行
    • 星空鑑賞、
    • 自作PC(水冷)、
    • カメラ ...etc
  • 職業:
    • ネットワークエンジニア上がりの広く薄くできる何でも屋さん。
    • 最近はMS(Azure, AD, MBAM,SCCM..etc)がメイン。

事前にお伝えしておくこと

  • Dockerの歴史は、コンピューターの歴史、仮想化の歴史とも言えます。
  • 音声通話・チャットでの優しいまさかりを受け付けています。
  • ※一緒に話に乗ってくれる方も募集しています。

仮想化・コンテナ化の歴史における解決したい永遠のテーマ

  • 目的・背景
    • 貴重なリソース(当時は高価だった)をいかに効率よく使用するか
    • セキュアな環境の確保

本編

1970

1971

1972

  • IBM VM/370 (OS)
    • 機能
      • メインフレームのハードウェアとソフトウェアを区画化でき、仮想マシン(VM)をそれぞれ独立した環境上で稼働させ、個々のユーザーが固有のアプリケーション群を実行できるようにした。
    • 背景
      • 当時、コンピュータにOSをインストールするためには数日を要していた。商用利用でマシンタイム一分間数百円の時代であるにも係わらず、その間、エンドユーザーはコンピュータを使うことが出来なかった。
      • 仮想計算機はこの作業を、エンドユーザーの利用と並行して行うことができ、最後にDASD(Direct Access Storage Device, つまりハードディスク)をテープに吸い上げ、物理マシンのDASDに戻し直せばよくなった。エンドユーザーが使えない時間は数時間になった。

1973

1974

  • PopekとGoldbergの仮想化要件 (論文)
    • 内容
      • コンピュータアーキテクチャが効率的にシステムの仮想化を実現するための一群の十分条件である

1975

1976

1977

1978

1979

  • chroot(2) システムコールの Version 7 Unix への導入
    • 機能
      • 特定のディレクトリを疑似的に別の環境に見せる仕組み
    • 例となる現代で使用されているサービス
      • virtual private server、略称:VPS
    • chrootの参考図

1980

1981

1982

  • chroot(2) システムコールの 4.2BSD への導入

1983

1984

1985

1986

1987

1988

1989

1990

special thanks 勉強会に参加してくださった皆様