TenForward

技術ブログ。はてなダイアリーから移転しました

[Plamo] (メモ) Plamo Linux で非特権コンテナ

lxc-create までは確認.

  • shadow-4.1.5.1 に userns 関連のパッチを当ててインストール (Ubuntu の patch を全部当ててみた)
    • lxc-usernsexec とかで上記パッチで生成されるコマンドを使用する
    • 何も考えずに全部のパッチを当てたので /etc/login.def の FAIL_DELAY をコメントアウトしないとダメ (PAM を使う場合そっちで同じこと出来るだろ,的? なパッチが当たってる < userns 関係ないから当てなくても良い)
  • lxc は git の最新
  • XDG_RUNTIME_DIR を設定しないとダメ (とりあえず /tmp) (2014-02-19 更新: このコミット で XDG_RUNTIME_DIR が設定されてなくても問題なくなっているはず.但し $HOME が設定されてないとダメ)
    • 設定しないと '/run' になってしまい /run/lxc 以下に書き込み権がないから失敗
    • Ubuntu Trusty 上だと /run/user/1000 (uid:1000 な人) になっていた.誰が作成して設定してるのかは知らん)

これで

$ export XDG_RUNTIME_DIR=/tmp
$ sudo usermod -v 100000-199999 -w 100000-199999 karma
$ cat .config/lxc/default.conf 
lxc.id_map = u 0 100000 10000
lxc.id_map = g 0 100000 10000
lxc.network.type=veth
lxc.network.link=lxcbr0
lxc.network.flags=up
$ lxc-create -t download -n p1 -- -d ubuntu -r trusty -a amd64 --no-validate
$ find ~/.local/share/lxc/
/home/karma/.local/share/lxc/
/home/karma/.local/share/lxc/p1
/home/karma/.local/share/lxc/p1/rootfs
/home/karma/.local/share/lxc/p1/rootfs/boot
/home/karma/.local/share/lxc/p1/rootfs/etc
/home/karma/.local/share/lxc/p1/rootfs/etc/mailcap.order
  (snip)
$ ls -l .local/share/lxc/p1/
合計 8,192
-rw-r--r--  1 karma  100000   635  1月 17日  20:32 config
drwxr-xr-x 21 100000 100000 4,096  1月 17日  13:49 rootfs/

こんな感じで非特権コンテナ作成完了.多分,必要な cgroup を root 権限で作ってあげれば,普通に lxc-start すれば起動すると思うけど,まだそこまで試してません (時間切れ).

またちゃんと書きます.