Open2

イラストでわかるDockerとKubenetes

てるてる

2章

基本的な用語たち

  • コンテナイメージ: コンテナを作成するときの基盤。Dockerfileを記述し、Buildコマンドを実行することで作成される。
  • レジストリ: イメージを配布することのできる仕組み。 Githubのレポジトリ的なもの。
  • コンテナ : 実態を持つランタイム。仮想マシンと違い、OS上でプロセスとして動作する。Runコマンドでコンテナイメージから作成される。

レイヤーの話

コンテナは一般的なOSと違い、複数のレイヤーによって構成される。
レイヤーは基本的に一つのDockerfileのコマンドごとに一レイヤー作られる。(ここのレイヤーの単位は難しい)
このレイヤーの仕組みによりストレージを節約することができる。

  • コンテナはReadOnlyレイヤーとReadWriteレイヤーがある。
  • ReadOnlyレイヤーはストレージを節約するために、複数のコンテナ間で共有される。
  • ReadWriteレイヤーは下位に存在するReadOnlyレイヤーとの差分だけをもつ。
    • ReadOnlyレイヤーに修正を加えたいときは、そのファイルのコピーがReadWriteレイヤーに作成さ>れ、いい感じにできるようになっている。(CoW)

OCIの話

DockerはDockerデーモンとOCIランタイムによって構成されている。
実はクラサバ型アーキテクチャであり、コマンドラインがクライアントでデーモンがサーバ的な感じ。

ユーザがDockerコマンドをコマンドラインに入力するとDockerデーモンが提供するAPIがコールされる。
コンテナ操作はDockerデーモンがOCIラインタイム経由で実行する。