3. Talk
➔ What is a linux container?
➔ What is Docker?
➔ Traditional virtualization vs. container virtualization
➔ Who is it for?
➔ Why Docker?
➔ Analogy with traditional virtualization
Agenda
Demo
➔ Install Docker
➔ Pull a Docker image
➔ Create a container
➔ Create your own image
4. What is a linux container?
➔ chroot on steroids.
➔ Isolated user space instances.
➔ Look and feel like a real server from the point of view of its owners and users.
➔ Resource and network isolation provided by cgroups.
➔ LXC and libcontainer
➔ Analogy behind the idea...
5.
6.
7.
8.
9.
10.
11. What is Docker?
➔ Platform for developers and sysadmins to build, ship, and run distributed applications.
➔ Tool to speedily create and run containers.
➔ Create and ship images in a jiffy!
➔ Automates deployment of applications inside Linux containers.
➔ Eliminates friction between dev, QE/QA and prod!
13. Traditional virtualization vs. container virtualization (contd.)
Traditional
➔ Apps, binaries and libraries - approx a few
MBs
➔ Entire guest OS - a few GBs
Containers
➔ Application and its dependencies
➔ Runs isolated in user space only!
➔ Containers share kernel with the host
14. Benefits to Developers
➔ Build apps in any language using existing tools
➔ Dockerize the app and run it safely anywhere
➔ Where anywhere is:
1. Colleague’s OS X system
2. QA systems running Ubuntu in the cloud
3. Production systems running Red Hat Enterprise Linux
15. Benefits to SysAdmins
➔ Can provide standardized environments for dev, QA and prod teams.
➔ No more “Works for me” excuse.
➔ Freedom to deploy workloads on any of the following:
1. On-premise bare metal
2. Data center VMs
3. Public clouds
➔ Run a lot more containers than VMs.
16. Why Docker?
➔ Encapsulate any payload and its dependencies
➔ Works on VMs, bare metal, OpenStack without any modification
➔ Standard operations to start, run, stop, etc.
➔ Light weight
➔ Supported by numerous major companies - Red Hat, Google, Canonical, Microsoft, etc.
17. Analogy with Traditional Virtualization
Traditional Virtualization (KVM)
➔ libvirt
➔ Distro iso
➔ Virtual machine
Container Virtualization
➔ libcontainer/LXC
➔ Docker images
➔ Containers