To have the self contained and easy to setup lab environment, I have created the Vagrant Box and setup labs around that. Each lab is consist of some theory, instructions and recording of the terminal, while running those instructions.

I am covering some of the basics here. More details can be found in the free sample of my Docker Cookbook

In this section we are going to look at state of Networking with current Docker release 1.8. More details can be found at Docker Documentation

When inter container communication (icc) is enabled with Docker, containers on the same host can be linked together to work as unit.

As we scale out with containers, we would need containers from one host to talk to containers from other host. There are few solutions, which are tying to solve this like Flannel, Weave, Calico etc.

When we start a containier we don't copy the image (unless VFS backend is used) and while doing the IO operations inside the container, we don't modify the original image. Because we don't copy the image, starting up a container is very fast. Changes done by the comtainer is saved in a different layer. This is all done using Copy on Write.

In this section we are going to look Data Volumes and Data Volume Containers, which allows contaiers to have external storage. There are two primary ways to mannage data for containers:-

With Docker Volume Plugins we can enable container to access external storage natively. Currently plugins are available only on experimental release. There are few existing volume plug-ins like Blockbridge Plugin, Flocker, GlusterFS.