Basics
Containers
- Containers offer the same abilities as a Virtual Machine but with less overhead.
- Containers do not virtualize a complete OS
Used for
- Software Portability — Running software consistentyl on different machines
- Isolation — Keeping individual pieces of software separate from one another
- Scaling — Increasing or decreasing resource sallocated to software as needed
- Automation — Automating processes to save time and money
- Efficient Resources Usage — Containers use resources efficiently, which saves money
Advantages
- Isolation and portability of VMs
- More lightweight thean VMs - Less resources usage
- Faster than VMs — Container can start in seconds
- Smaller than VMs — Container images canb e measured in megabutes, not gigabytes
Limitations
- Less flexible than VMs — You can’t run a Windows container on a Linux machine.
- Introduces new challenges around orchestration and automation
- A container runtime, which actually allows you to implement container. (Container is just a concept)
- Allows you to build and manage containers and container images
Other Container Runtimes
- rkt
- Ultimately does the same thing as Docker.
- Is more linux like and may be easier for linux stuff
- Supports more container images formats than Docker
- containerd
- Emphasizes simplicity, robustness, portability
- Focused solely on running containers
- Does not has many features as Docker but may not be a downside