The document provides an overview of containers and compares implementations between Linux containers, Solaris Zones, and FreeBSD Jails. It focuses on Docker containers and SmartOS Zones, explaining how Docker uses libcontainer instead of LXC, how to build Docker images with Dockerfiles, and how to run Docker containers by pulling images from a registry and mapping ports. It also demonstrates how to create and start a SmartOS Zone virtual machine image.
2. Who am I?
• Principal Software Engineer at Crowd
Interactive
• Public Speaker
• Home made ceviche specialist
• OpenSource lover
Tuesday, March 10, 15
3. Contain... what ?
• A container is a self contained execution
environment that shares the kernel of the
host system
• Containers isolate and encapsulate your
application workloads from the host
system
Tuesday, March 10, 15
5. Implementations
• FreeBSD Jails
• Solaris Zones
• Linux has multiple implementations
• LXC
• LXD
• CGManager
Linux has multiple implementations: LXC, LXD, CGManager, etc
Tuesday, March 10, 15
6. Why?
• Easy scaling
• Same image running in multiple instances
• Limit resources
• CPU, Memory, Disk Quotas, Network
• Easy to create
• Safety
Tuesday, March 10, 15
7. Differences
• Zones are expected to run a full system
(like a virtual machine)
• Linux Containers(like Docker) is expected
to run a single process (or small process
tree) isolated from the host OS
Tuesday, March 10, 15
8. Differences
• Solaris Zones and FreeBSD Jails can be
resized on the fly
• Linux containers need to be restarted
Tuesday, March 10, 15
9. Differences
• Jails and Zones takes advantage of ZFS
• Snapshots
• Cloning
Tuesday, March 10, 15
11. Docker
• Started as a wrap of LXC
• Replaced LXC-tools
• Now using libcontainer
• Native Go Implementation for linux
namespacing
Tuesday, March 10, 15