Upgrade to Pro — share decks privately, control downloads, hide ads and more …

systemd-nspawn は便利らしい

systemd-nspawn は便利らしい

@threetreeslight
on Repro Tech Meetup #1

threetreeslight

July 27, 2018
Tweet

More Decks by threetreeslight

Other Decks in Programming

Transcript

  1. WHOAMI @threetreeslight / VPoE at Repro shinjuku.rb, shinjuku-aar, shinjuku-mokumoku, Hacking

    HR! などのコミュニティオーガナイザーしています 2 / 22
  2. そんなものが そんなものが そんなものが そんなものが そんなものが そんなものが そんなものが そんなものが そんなものが そんなものが

    そんなものが そんなものが 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある 世の中にある なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! なんて!!! 4 / 22
  3. systemd-nspawn って 何? systemd-nspawn is like the chroot command, but

    it is a chroot on steroids. -- archlinux wiki - systemd-nspawn 5 / 22
  4. 強くてヤバイ 強くてヤバイ 強くてヤバイ 強くてヤバイ 強くてヤバイ 強くてヤバイ 強くてヤバイ 強くてヤバイ 強くてヤバイ 強くてヤバイ

    強くてヤバイ 強くてヤバイ chroot chroot chroot chroot chroot chroot chroot chroot chroot chroot chroot chroot 6 / 22
  5. 以下、間違っ 以下、間違っ 以下、間違っ 以下、間違っ 以下、間違っ 以下、間違っ 以下、間違っ 以下、間違っ 以下、間違っ 以下、間違っ

    以下、間違っ 以下、間違っ てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん てたらごめん なさい なさい なさい なさい なさい なさい なさい なさい なさい なさい なさい なさい 10 / 22
  6. DOCKER の構成技術 1. namespaces <- 2. Control groups <- 3.

    Union le systems 4. Container format From dockr overview - the-underlying-technology 11 / 22
  7. Control groups(cgroup) process をgrouping し、CPU, memory, disk I/O, network, etc.

    のresouce の利⽤を監視、制限するや つ。 このおかげで特定プロセスがhost のリソースを専有 してしまう事象を防ぐ。 -- wiki - cgroups 13 / 22
  8. で、chroot は? ルートディレクトリを変更して、その外のファイル やコマンドへのアクセスを制限するやつ。 docker run --rm -it debian:latest sh

    apt-get update apt-get install -y binutils debootstrap mkdir -p /srv/chroot/wheezy debootstrap --arch i386 wheezy /srv/chroot/wheezy http://httpredi chroot /srv/chroot/wheezy /bin/bash I have no name!@1af6c5c55369:/$ # いやっふぅ https://wiki.debian.org/chroot 14 / 22
  9. やってみる debian/jessie64 # create a new container using debootstrap $

    CDIR=/var/lib/machines/freedombox $ sudo debootstrap sid $CDIR $ sudo systemd-nspawn -D $CDIR --machine FreedomBox root@FreedomBox:~$ apt-get install -y freedombox-setup # set root password and stop the container root@FreedomBox:~$ passwd root root@FreedomBox:~$ ^D 16 / 22
  10. いくぜ! # start the container and its services $ sudo

    systemd-nspawn -D $CDIR --machine FreedomBox -b Spawning container FreedomBox on /var/lib/machines/freedombox. Press ^] three times within 1s to kill container. /etc/localtime is not a symlink, not updating container timezone. systemd 239 running in system mode. (+PAM +AUDIT +SELINUX +IMA +A Detected virtualization systemd-nspawn. Detected architecture x86-64. Welcome to Debian GNU/Linux buster/sid! Set hostname to <jessie>. File /lib/systemd/system/systemd-journald.service:36 configures a Proceeding WITHOUT firewalling in effect! (This warning is only s [ OK ] Reached target Swap. [ OK ] Reached target System Time Synchronized. [ OK ] Listening on Syslog Socket. 17 / 22
  11. 何が嬉しいか?( 捻り出 す) docker に関わるecosystem が不要なので、純粋に隔離環 境つくるときはありそう? Docker のようにLayer で管理しないのでimage

    が軽い。 systemd と組み合わせて起動時にいい感じに⽴てとくと かもできる(と思う) ただの le なので、気合⼊れればgit 管理できる(gitignore はいっぱい書く) 19 / 22
  12. REFERENCES REFERENCES REFERENCES REFERENCES REFERENCES REFERENCES REFERENCES REFERENCES REFERENCES REFERENCES

    REFERENCES REFERENCES chroot, cgroups and namespaces — An overview archlinux wiki - systemd-nspawn debian - nspawn wiki - Linux namespaces wiki - cgroups 22 / 22