Operating-system-level virtualization
10:00 bis 11:00 in Raum V1
Christian Brauner
Hands-on Einführung in operating-system-level virtualization.
- Technische Grundlagen: Implementierung und Möglichkeiten im/des Kernels:
- Wie funktionieren cgroups?
- Was kann man mit ihnen machen?
- Was ist namespace isolation?
- Was sind linux capabilities?
- Use-case 1 (Workflow):
- Wie konfiguriere und nutze ich low-level container virtualization tools wie lxc, für software development?
- Was sind die Vorteile?
- Use-case 2 (Sandboxing-Security):
- Operating-system-level virtualization zum sandboxing proprietärer software mit grafischen output, GPU-access (Hardware access auf dem Host im allgemeinen) (z.B. Google Chrome im Container)
- Einführung in unpriviligierte Container, die user namespaces nutzen
Vorwissen
- Umgang mit dem Terminal und den grundlegenden Tools: chmod, chown, sed etc.
- C-basics (wirklich wenig)
- basic shell-scripting in sh und bash
- git
Vorbereitung
- Kernel-Version >= 3.13 (ausgenommen 4.0.2)
- lxc >= 1.1.0
- lxcfs 0.7
- cgmanager 0.36
- git
“We’re trying to extend our interfaces to the point that you can safely run code that you traditionally absolutely could not as root.” Linus Torvalds, on namespaces and container security. (Linux Kernel Developer Panel)
Links
- en.wikipedia.org/wiki/Operating-system-level_virtualization
- en.wikipedia.org/wiki/LXC
- github.com/lxc/lxc
- en.wikipedia.org/wiki/Sandbox_(computer_security)
- Namespace Isolation: MOUNT-, PID-, UTSNAME-, IPC-, NETWORK-, und USER-Namespaces: man7.org/linux/man-pages/man7/namespaces.7.html
- en.wikipedia.org/wiki/Cgroups
- Linux capabilities: linux.die.net/man/7/capabilities
- pad: tuebix2015.titanpad.com/brauner-lxc