What are containers? What do they include?
What makes containers possible?
Operating-System-level virtualization
-> applications running in containers only see resources etc belonging to that container
What problem makes containers useful/necessary?
Deyploying multiple applications in parallel on one host leads to problems with isolating them from each other and avoiding conflicts between:
- dependencies
- libraries
- runtimes
Problems arise as well, when trying to run an application on multiple hardware and platforms
-> challanges with portability
How do containers solve the portability challange?
By bundling the application and all its dependencies in a box
- that box can be shipped to different platforms and runs identically on each of them
What are building blocks of the container technology (provided by Linux)
What is a namespace in a container (Linux kernel)?
How are VMs and containers different?
Virtual Machine simulate whole OSes, isolated from each other on the same host. Installed on top of hypervisor. Multiple layers between running application and outside world: guest OS, hypervisor, and at time host OS
containers:
- Namespaces isolate processes from each other.
- Possibly multiple processes running on the same host OS.
- No middle layers like in VMs.
- Enables near-native performance.
- Easier to run multiple containers than multiple VMs
- but Containers need to be compatible with host OS
What global resources are names paced? (6)
What does the pid namespace enable?
What does the net namespace enable?
What does the mnt namespace enable?
What does the ipc namespace enable?
What does the uts namespace enable?
What does the user namespace enable?
What are Control Groups (linux kernel) used for?
What Features do control Groups (cgroup) have? (4)
How does the Union filesystem work?
How do container runtimes help?
What are the most popular container runtimes?
What is the Docker Platform?
How does the Docker Client-Server architecture work?
Do Docker containers always run as rooted containers?
No, rooted containers are default. But rootless containers have been introduced
What is Podman? Or Pod Manager
What are Podman advantages?