Slides from March Docker meetup at Shippable. A quick overview of Docker, whats new in 0.9 and a demo of how Shippable uses Docker to simplify software development workflow
8. …that can be manipulated using standard operations
and run consistently on virtually any hardware platform
An engine that enables any payload to be encapsulated as
a lightweight, portable, self-sufficient container…
What is Docker?
9. Build once…(finally) run anywhere
– A clean, safe, hygienic and portable runtime environment for your app.
– No worries about missing dependencies, packages and other pain
points during subsequent deployments.
– Run each app in its own isolated container, so you can run various
versions of libraries and other dependencies for each app without
worrying
– Automate testing, integration, packaging…anything you can script
– Reduce/eliminate concerns about compatibility on different platforms,
either your own or your customers.
Why devs care?
10. Configure once…run anything
– Make the entire lifecycle more efficient, consistent, and repeatable
– Increase the quality of code produced by developers.
– Eliminate inconsistencies between development, test, production, and
customer environments
– Support segregation of duties
– Significantly improves the speed and reliability of continuous deployment
and continuous integration systems
– Because the containers are so lightweight, address significant performance,
costs, deployment, and portability issues normally associated with VMs
Why ops cares?
11. What it really is, is this…
It is a VM without the overhead of a VM
12. App
A
Hypervisor (Type 2)
Host OS
Server
Guest
OS
Bins/
Libs
App
A’
Guest
OS
Bins/
Libs
App
B
Guest
OS
Bins/
Libs
AppA’
Docker
Host OS
Server
Bins/Libs
AppA
Bins/Libs
AppB
AppB’
AppB’
AppB’
VM
Container
Containers are isolated,
but share OS and, where
appropriate, bins/libraries
Guest
OS
Guest
OS
VM vs Container
14. • Execution drivers
– Support for multiple isolation tools
– OpenVZ, systemd-nspawn, libvirt-lxc, libvirt-sandbox, qemu/kvm, BSD
Jails, Solaris Zones
• New default driver : libcontainer
– Alternative to LXC which was default until now
– Claimed to be more stable
– Better access to kernel’s container API
• namespaces, control groups, capabilities, apparmor profiles, network interfaces
and firewalling rules
– No cross Linux version side-effects
What’s new?