tl;dr
会社から借りっぱなしの Software Design 2020 年 2 月号で特集されている Docker コンテナランタイムについての記事を読んでみたメモです.
読みながら気になる単語や内容をマインドマップにまとめていきたいと思います.
今回は世の中に出回っているランタイムについてまとめました.
マインドマップ
所感
色々なランタイム
- それぞれ特徴があるけど, コンテナ to コンテナ, ホスト to コンテナの隔離には並々ならぬ (はちょっと大げさ) 拘りが感じられた
Docker って
- 高レベルランタイムに位置づけされている
- Kubernetes でもデフォルトのランタイムとして位置づけられている
- 内部では containerd を利用している
containerd
上図中では度々, conteinerd と書いてしまっているけど, それは typo なのでごめんなさい.
低レベルランタイム
- 名前は低レベルだけど, やってることは高レベル (色々と頑張ってくれている)
- runc がその代表格, gVisor や Kata Containers が続く感じ
runc
- Docker のデフォルトランタイム
- 元 libcontainer
- cgroups や Linux namespace 等を駆使して隔離環境を作成
gVisor
https://www.slideshare.net/uzy_exe/201805gvisorintroduciton より引用
以上
メモでした.
コンテナ間, コンテナ - ホスト間の隔離に対してどのようなアプローチをするか, 各ランタイムで特徴的な取り組みが垣間見れてとても面白い記事でした. gVisor ちょっと試してみたい.