Containers Flashcards
What is a container?
A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings.
What are some benefits of containers?
- Software will always run the same, regardless of the environment.
- Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure.
How do containers and virtual machines behave differently?
Have similar resource allocation and isolation benefits but containers virtualize OS rather than hardware.
Can multiple containers run on the same machine and how?
Yes. They share the OS kernel with other containers each running isolated processes in user space.
Whats the space benefit when compared to VMs?
Containers take up less space than VMs and start almost instantly. Container images are typically tens of MBs in size whereas VMs takes up tens of GBs.
How does VMs work basically?
They virtualize physical hardware. Hypervisor allows multiple Vms on a single machine. Each VM includes a full copy of an OS, on or more apps, necessary bins etc.
What is a hypervisor basically?
A hypervisor or virtual machine monitor (VMM) is computer software, firmware, or hardware, that creates and runs virtual machines.
Can VMs and containers run together?
Yes they can.
What is Containerd?
It is an industry standart container runtime. Available as a daemon for both for Linux and Windows. It manages the complete container lifecycle of its host system, image transfer and storage, container execution and supervision, low-level storage and network attachments.
What is runC?
Its the runtime code for Docker. Docker engine is built on runC and Containerd.
What are the basic similarities between containers and VMs?
Both are designed to provide an isolated environment in which to run an application.
In both the env. is represented as a binary artifact that can be moved between hosts.