Why docker? Your site consists of a full stack. Django, database, apache, celery, etc. If you’re a full stack deveoper, you need to be able to look at all of them. And ideally you’d have exactly the same environment locally as on the server.
Docker calls itself “an easy, lightweight virtualized environment for portable applications”. A portable, self-sufficient container. It is a sandboxing technique that is a bit similar to BSD chroots.
It uses Linux containers, AUFS, Git-like versioning and a REST API.
What is the difference with a normal virtual machine? A VM needs:
The libs and the app are part of a docker image. It is faster and much more lightweight. It reuses the host OS (but it is completely isolated!).
On OSX: use boot2docker plus an OSX docker client. It uses a virtualbox with linux, the docker client still runs on OSX, but talks to docker inside the virtualbox.
Some terminology: an image is a base that contains libs, binaries, environment variables, files and so. When you instantiate (“run”) it, you effectively make a copy. This is called the container. Using the container doesn’t modify the original image.
Registry: “PyPI” for docker images: https://index.docker.io/ . The registry lists repositories: you can put your own repository (typically from github) in there. A repository is a collection of images.
(He demoed it from OSX. Looked like something I want to use! Once the videos of the conference are online, you’d best just look at the video as that is much clearer than whatever I could write down.)
Some generic tips/comments:
Station of Saales in 2007
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):