Skip to content

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環境を再起動して下さい。
今回扱うカーネル機能は強力ですが、基本的に永続性は無いものなので、再起動すれば大体直ります。