Mac OS X and BTRFS support in Docker
Mac support consists of a native Docker OS X client, and a lightweight Boot2Docker virtual machine (VM) that must run in VirtualBox (as OS X doesn’t have the underlying support for Linux containers required by Docker). Prior to this release Mac users would have to run both the Docker client and daemon in a Linux virtual machine.
The Docker team have a stated desire to port Linux containers (LXC) and other dependencies to OS X, but for now their daemon must run in a VM. Boot2Docker provides a minimal linux environment, and a set of command line scripts to work with VirtualBox. Boot2Docker provides lifecycle management, and also takes care of port mappings for SSH and the Docker daemon running in the VM. The DOCKER_HOST environment variable is used so that the client can connect to a Docker daemon on TCP rather than the default native Unix socket. Unfortunately Boot2Docker doesn’t yet integrate with Docker’s own port mapping mechanism, so it’s presently necessary to map ports in both VirtualBox and Docker in order to connect from the host Mac to services running inside containers.
The BTRFS driver is described as experimental, and requires an existing BTRFS partition to be set up. The use of an underlying copy on write filesystem is essential to the working of Docker where images, and containers spawned from images, are made up of layers with each layer mapping to a filesystem branch. Work is also in progress on a ZFS driver.
The Docker.io team have also announced that they will now make one release per month, with releases not tied to any specific features. This follows a $15m investment round led by former VMware VP Jerry Chen of Greylock Partners that was slated for getting Docker production ready, building out the community platform, and finding routes to commercialisation. The Docker team have also committed that their github master branch will be stable, making it the point of reference for those wanting the latest version. Prior to the latest investment round dotCloud changed their company name to Docker Inc.
Further background on Docker and how it’s used can be found in Zef Hemel’s ‘Docker: Using Linux Containers to Support Portable Application Deployment’.