Docker.io have used their inaugrual DockerCon event to launch version 1.0 of their container management tools. It comes just days after the release of 0.12.0, which was focussed on stability, performance and usability rather than introducing significant new features. Production readiness means that Docker.io is now providing support services for Docker.
Docker is used to ‘build, ship and run’ applications within Linux containers. Like a shipping container an application container provides the appropriate isolation so that things can be moved around without consideration for the contents. Docker provides the container, infrastructure (such as the latest Linux OS releases) provides the place to put containers, and developers put their code inside of containers. There are 3 key components to the environment:
- The Docker command line tool, which is used to manage the lifecycle of containers and the images that containers are built from.
- Dockerfile - a DevOps scripting language for creating Docker images.
- Image repositories. Docker.io runs the default public registry, now rebranded as Docker Hub. Users can also create their own private repositories or use hosted repositories such as Gandalf.
Docker Hub has had a facelift when compared to the old Docker Index, and now looks more like an application marketplace. At launch there is showcased content from CentOS, MongoDB, MySQL, Nginx, Node.js, PostgreSQL, Redis, Ubuntu and Wordpress. Private repositories, which have been in beta for some months, are now generally available. Users may get one private repo free, and there’s a tiered subscription scheme for larger numbers of private repos.
Docker.io are now offering support services for companies wanting to run Docker in production. ‘Long term support’ for Docker 1.0 has been committed to for 12 months from release, implying that there’s more change to come in what’s been a rapidly evolving project. Two tiers of support, standard and premium, are being offered. The pricing model for support hasn’t yet been advertised. Partnerships with systems integrators that can help with Docker projects were announced. The Docker team also have their own services offering with one day ‘Jumpstart’ for $4950 and three day ‘Bootstrap’ for $9990.
Container management systems like Docker are often compared and contrasted to virtualisation systems like VMware’s ESX, Xen or KVM. The key difference is that containers share a Linux kernel, and resources managed by it, rather than having a separate operating system (and kernel) as happens with virtual machines. Docker was originally built on top of the LinuX Containers (LXC) project, but LXC was swapped out in favour of a native Go language libcontainer library with the March 2014 release. Docker makes use of cgroups within the kernel to provide isolation, network namespaces, and a union filesystem such as AUFS. In principle Docker can be run on any version of Linux that has cgroups. In practice a more recent kernel is usually desirable for security, stability and union filesystem support. Docker was included in the latest Ubuntu 14.04 release, and will also feature in Red Hat Enterprise Linux 7 and CentOS 7. There’s also a trend towards new lightweight Linux distributions such as CoreOS and Red Hat’s Project Atomic that are paired down to be minimal substrates for Docker.