From the course: Exploring Linux Internals: Advanced Insights and Practical Applications
Unlock this course with a free trial
Join today to access over 24,900 courses taught by industry experts.
Systemd containers - Linux Tutorial
From the course: Exploring Linux Internals: Advanced Insights and Practical Applications
Systemd containers
- So you can manually create your containers. You can also use systemd. So containers just provide a way to run a process in multiple namespaces with cgroups applied. Docker and Podman are very common ways to implement containers, but you can also easily implement them on Linux using systemd-nspawn. systemd-nspawn is mainly about running applications in perfectly isolated environment, and not so much about providing a distribution model for applications as is the case with Docker registry and others. What does that mean? It means that they don't have a registry. You need to create the container images for yourself. So that means that, to create your own container, you need a chroot file system that contains all that is required. And in the next demo, I am going to show you how to use debootstrap, which is a Debian-based package to install systemd-nspawn containers on Ubuntu. The systemd container package contains systemd-nspawn as well as machinectl, which is the main tool to manage…
Download courses and learn on the go
Watch courses on your mobile device without an internet connection. Download courses using your iOS or Android LinkedIn Learning app.
Contents
-
-
(Locked)
Module 1: Linux architecture introduction37s
-
(Locked)
Learning objectives40s
-
System space and user space, and how they are related4m 22s
-
(Locked)
The role of the kernel1m 8s
-
Why the root user is unrestricted3m 37s
-
(Locked)
Drivers, kernel modules, and device files4m 27s
-
(Locked)
Glibc1m 41s
-
(Locked)
The shell50s
-
(Locked)
File descriptors3m
-
(Locked)
Real-world scenario: Understanding the root user1m 57s
-
(Locked)
-
-
(Locked)
Learning objectives51s
-
The boot procedure from firmware to shell4m 51s
-
(Locked)
System firmware: UEFI and BIOS1m 34s
-
(Locked)
Managing UEFI booting6m 55s
-
(Locked)
Bootloaders5m 34s
-
(Locked)
Where GRUB is stored2m 48s
-
Configuring GRUB28m 17s
-
(Locked)
Understanding and modifying initramfs3m 40s
-
(Locked)
Service managers1m 9s
-
(Locked)
Booting cloud Linux instances50s
-
(Locked)
Accessing an early boot shell5m 47s
-
(Locked)
Real-world scenario: Recovering from a lost MBR7m 33s
-
(Locked)
-
-
(Locked)
Learning objectives45s
-
(Locked)
Why compiling kernels isn’t necessary anymore1m 16s
-
(Locked)
Kernel generic interfaces5m 22s
-
Managing and tuning kernel modules7m 48s
-
(Locked)
The /proc pseudo filesystem1m 30s
-
(Locked)
Using /proc to get detailed system information5m 45s
-
(Locked)
Reading process information in /proc4m 17s
-
(Locked)
Tuning the kernel through /proc/sys4m 33s
-
(Locked)
Testing critical features with sysrq3m 11s
-
(Locked)
Using watchdogs2m 36s
-
(Locked)
eBPF2m 22s
-
(Locked)
Real-world scenario: Automatically recovering from system hangs1m 29s
-
(Locked)
-
-
(Locked)
Learning objectives55s
-
(Locked)
Manually starting systemd4m 32s
-
(Locked)
Systemd unit files4m 39s
-
(Locked)
Tweaking unit files7m 5s
-
Mounting filesystems with systemd11m 18s
-
(Locked)
Using sockets4m 2s
-
(Locked)
Scheduling processes with timers4m 35s
-
(Locked)
Analyzing systemd performance4m 25s
-
(Locked)
Advanced dependency handling5m 34s
-
(Locked)
Managing resource allocation, part 112m 16s
-
(Locked)
Managing resource allocation, part 26m 16s
-
(Locked)
Managing resource allocation, part 33m 20s
-
(Locked)
Creating custom units3m 50s
-
(Locked)
Creating custom targets5m 31s
-
(Locked)
Running user processes in systemd4m 52s
-
(Locked)
Real-world scenario: Booting without /etc/fstab9m 39s
-
(Locked)
-
-
(Locked)
Module 2: Storage and filesystems introduction22s
-
(Locked)
Learning objectives1m 9s
-
(Locked)
Linux storage devices4m 29s
-
(Locked)
Partitions: MBR and GPT9m 53s
-
(Locked)
Managing partitions13m 58s
-
(Locked)
Images and ISO files2m 57s
-
(Locked)
Understanding flexible storage solutions1m 4s
-
(Locked)
Managing LVM logical volumes4m 35s
-
(Locked)
Using LVM features11m 32s
-
(Locked)
Device mapper4m 49s
-
(Locked)
Manually creating device mapper storage6m 3s
-
LVM and VDO7m 14s
-
(Locked)
Stratis8m 50s
-
(Locked)
Creating encrypted devices9m 20s
-
(Locked)
Booting from encrypted devices4m 53s
-
(Locked)
Real-world scenario: Creating a hidden storage device5m 23s
-
(Locked)
-
-
(Locked)
Learning objectives52s
-
(Locked)
Filesystems and the VFS4m 18s
-
(Locked)
About POSIX and non-POSIX filesystems4m 24s
-
(Locked)
Linux filesystem components4m 4s
-
(Locked)
Inodes and block allocation5m 56s
-
Sparse files7m 34s
-
(Locked)
FUSE filesystems3m 56s
-
(Locked)
Next-generation filesystems4m 34s
-
(Locked)
Running ZFS on Linux5m 37s
-
(Locked)
Running Btrfs7m 54s
-
(Locked)
Using the Ext filesystem debugger7m 41s
-
(Locked)
Managing XFS IDs4m 24s
-
(Locked)
Real-world scenario: Exploring cool filesystem tools3m 54s
-
(Locked)
-
-
(Locked)
Learning objectives45s
-
(Locked)
Storage challenges in cloud and datacenter2m 9s
-
Working with SSD media4m 47s
-
(Locked)
Understanding iSCSI3m 50s
-
(Locked)
Configuring iSCSI storage9m 36s
-
(Locked)
Connecting the initiator4m 53s
-
(Locked)
Object storage4m 2s
-
(Locked)
Configuring a Ceph cluster9m 41s
-
(Locked)
Configuring a Ceph client7m 52s
-
(Locked)
Real-world scenario: Ceph in Kubernetes2m 12s
-
(Locked)
-
-
(Locked)
Module 3: Core Linux components introduction19s
-
(Locked)
Learning objectives44s
-
(Locked)
Linux memory allocation: Virtual vs. physical memory4m 41s
-
(Locked)
Cache6m 59s
-
(Locked)
Active and inactive memory6m 24s
-
(Locked)
The need to swap4m 5s
-
(Locked)
Configuring and monitoring swap space7m 20s
-
(Locked)
Managing huge pages9m 40s
-
(Locked)
Managing dirty cache2m 17s
-
(Locked)
Out of memory (OOM) and dealing with it12m 4s
-
(Locked)
Analyzing kernel memory3m 52s
-
(Locked)
Real-world scenario: Optimizing memory usage2m 55s
-
(Locked)
-
-
(Locked)
Learning objectives48s
-
(Locked)
How a process is created5m 39s
-
(Locked)
Processes and threads6m 22s
-
(Locked)
Killing a zombie10m 17s
-
(Locked)
Priorities, schedulers, and nice values10m 52s
-
(Locked)
Inter-process communication, sockets, pipes, and more6m 37s
-
(Locked)
Communicating on the D-Bus message interface8m 14s
-
(Locked)
Monitoring IPC usage3m 38s
-
(Locked)
Real-world scenario: Cgroups and priorities4m 59s
-
(Locked)
-
-
(Locked)
Learning objectives47s
-
(Locked)
Exploring what happens when commands are executed4m 39s
-
(Locked)
System space and user space1m
-
(Locked)
Understanding system calls7m 41s
-
(Locked)
How processes get access to system calls3m 55s
-
(Locked)
How process memory is organized6m 8s
-
(Locked)
Creating processes3m 42s
-
(Locked)
Allocating memory1m 54s
-
(Locked)
Accessing libraries3m 26s
-
(Locked)
Analyzing library usage2m 11s
-
(Locked)
Real-world scenario: Using exec for troubleshooting2m 27s
-
(Locked)
-
-
(Locked)
Learning objectives53s
-
(Locked)
Linux network device names3m 12s
-
(Locked)
The OSI model6m 17s
-
(Locked)
Transforming data into packets5m 15s
-
(Locked)
Analyzing packet headers4m 57s
-
(Locked)
IPv4 and IPv69m 18s
-
(Locked)
How Linux chooses a network interface5m 56s
-
(Locked)
Analyzing and optimizing networking4m 16s
-
(Locked)
Bonding and teaming1m 53s
-
(Locked)
Network bridge devices2m 8s
-
(Locked)
Real-world scenario: Scanning packets for security3m 4s
-
(Locked)
-
-
(Locked)
Module 4: Key Linux components introduction24s
-
(Locked)
Learning objectives1m 7s
-
(Locked)
Running an application on Linux3m
-
(Locked)
Running applications in a chroot jail3m 15s
-
(Locked)
Managing Linux process resource allocation2m 58s
-
(Locked)
Using unshare to run namespaced processes3m 28s
-
(Locked)
Running Linux applications with namespaces and cgroups5m 4s
-
(Locked)
From restricted Linux applications to containers2m 37s
-
(Locked)
Container runtimes2m 53s
-
(Locked)
Systemd containers7m 56s
-
(Locked)
Containers and the future of Linux1m 37s
-
(Locked)
Real-world scenario: Running pure Linux containers2m 45s
-
(Locked)
-
-
(Locked)
Learning objectives49s
-
(Locked)
The C programming language1m 20s
-
(Locked)
Working together in Git3m 28s
-
(Locked)
From Git project to Linux distributions1m 32s
-
(Locked)
C programs: From source code to binary4m 46s
-
(Locked)
C and libraries44s
-
(Locked)
Compiling a C program from a makefile3m 55s
-
(Locked)
Real-world scenario: Writing your own zombie2m 53s
-
(Locked)