レトリバのCTO 武井です。
やあ (´・ω・`) うん、「また」コンテナの記事なんだ。済まない。
技術ブログの開設と新セミナー運用の開始にあたって、「前に話した内容をブログにしつつ、新しい差分をセミナーにすれば、一回の調べ物でどっちのネタもできて一石二鳥じゃないか」と思っていたのですが、
前のセミナーが情報詰め込みすぎでブログの文量がとんでもないことになって、
→ それが前提条件になってしまっているのでセミナー資料の文量も膨れ上がって、
→ 差分だけと思っていたUser名前空間も思った以上のボリュームで、
→ やっと一息かと思ったら、フォローアップ記事が残っていることを思い出すなど ←いまここ
一石二鳥作戦のはずが、どうしてこうなった……。
計画大事。
そんなわけで、今回は4/17にお話ししました「コンテナ仮想、その裏側 〜user namespaceとrootlessコンテナ〜」というセミナーのフォローアップ記事となります。 セミナーでは喋れなかったことなどを加筆しつつ、改めてコンテナ仮想の裏側で動いているUser名前空間について説明していこうと思います。
また、セミナーでは時間切れしてしまった、「手作りrootlessコンテナ」をシェルスクリプトで実装してみようと思います。
冒頭でもちらりと触れましたが、このセミナーは、前に話したセミナーを前提に話しております。 こちらはちょっと前にフォローアップ記事を挙げておりますので、先に↓の記事に目を通していただければと思います! (タイトルの付け方ミスったなぁ……)
- はじめに: rootlessコンテナとは?
- user名前空間の歴史と背景
- いざ実践: 準備
- いざ実践: とりあえずrootになってみる
- いざ実践: unshare -U
- いざ実践: uid_map/gid_map
- ちょっと寄り道: uid_map/gid_mapをもうすこし詳しく
- いざ実践: 井の中のrootはなにができるのか
- いざ実践: 井戸の中の王国建設
- いざ実践: が、ダメッ
- ユーザが作れない
- ネットワークが繋がらない
- ファイルシステムイメージの管理がダサい
- podmanを見てみる
- できた!手作りrootlessコンテナ
- 参考文献