2-3. すすめ方
今回、ハンズオンは3つのパートを別々に進められるようになっています。
- Namespace
- 担当範囲:
main.go
- 担当範囲:
- chroot/pivot_root
- 担当範囲:
rootfs.go
- 担当範囲:
- cgroup
- 担当範囲:
cgroup.go
- 担当範囲:
個人で取り組む人
次の章から順次取り組んで下さい。
チームで取り組む人
1人1~2機能を選んで、手分けして取り組んでみて下さい。
担当範囲がファイルごとに明確なため、コンフリクトは起きないはずです。
cgroupが比較的簡単ですが、どれも新しい概念は出てくると思います。
わからない部分が出てきた時は、ぜひ助け合って下さい。
最後にお互いが書いたコードを合わせて、コンテナを完成させましょう!
今の状態
今皆さんの手元にあるテンプレートは、ただ与えられたエントリーポイントを実行するだけのプログラムです。
これにプロセス隔離機能を実装することで、コンテナに仕立てていきます。
プログラムの動かし方
以下のコマンドで実行できます。
設定を変えたければ、リポジトリ直下のconfig.jsonを編集して下さい。
bash
make runもしホスト環境がバグったら
今回扱うカーネル機能は非常に強力で、使い方を誤ればホストにまで影響を及ぼしてしまいます。
そのため、実装テスト中Linux環境がバグってどうしようもなくなることがしばしばあります。
Linux環境がバグってしまったら、Linux環境を再起動して下さい。
今回扱うカーネル機能は強力ですが、基本的に永続性は無いものなので、再起動すれば大体直ります。