Awesome meeting last night with my fellow geeks at UCLUG – Many Thanks to Tim Fowler – https://twitter.com/roobixx
http://youtube.com/watch?v=
The topic was Docker … Docker is based on the concept of containers .. no necessarily the LXE containers (akin to Solaris zones), although the docker containers will run within LXE containers, basically docker is described as chroot on steroids.
The minimum basis for a docker container is the bare minimum libraries required to run a Linux distribution (probably version close to a net install). So I downloaded the base fedora docker image – about 250 MB … it booted up in docker in about 3 seconds.
The idea is that you start with one of these base images, yum install all required packages to run your app. For example, for a simple wordpress website container, you may install apache, php, mysql. You do a docker commit to save your changes. The changes get saved as a separate layer.
So my understanding of the internals of docker is that when you boot a docker image, the base image plus all layers get joined together via unionfs http://en.wikipedia.org/wiki/
Unlike a virtual machine where you may want to duplicate a base “machine” to use it as the basis for several different applications, you can build several docker containers, all with their own unique purposes, based on the same fedora base image.
CONTAINER_A : APACHE/PHP stack
CONTAINER_B : MySQL DB
Unlike a virtual machine clone where you are duplicating the total OS, with docker, CONTAINER_A and CONTAINER_B (as well as all other containers built off the same base image) all reference back to the same base fedora image and then just apply their own individual layers representing the deltas.
That’s it in a nutshell