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ラインタイム経由で実行する。