Congratulations Docker on another fantastic announcement – Docker 1.12!
DockerCon 2016 is here, and with it another well timed Docker announcement! With the 1.12 release coming, there are some nice enhancements for storage. Some of the notable changes enhance support for volume drivers. These changes include the abilities to identify whether volumes are locally vs globally accessible and also to get driver-specific details about available volumes. There are also other nice-to-haves and fixes included in 1.12 that are detailed below. It’s clear that some of these changes will help prepare Docker Swarm to scale. With that said, Docker at scale is likely to be a key theme at DockerCon this week.
Support for Volume Scopes (local/global) #22077
This doesn’t change anything noticeable; however, services that utilize docker volumes (ex: swarm) are able to identify available volumes as local to a specific host, or global to all hosts. In the past when you ran “docker volume ls” from a swarm manager, any global volume that was available to all swarm agents was listed once for each host. This has posed a challenge when trying to build scalable Docker Swarm clusters. Now, this should be easier to fix with the ability to know which volumes are global instead of local.
Support for Volume Status #21006
In the past each Docker volume the only details available were the volume name, driver name, where it’s mounted, and basic labels (if used).
With v1.12, it’s now possible to get more driver-provided details (nested under Status) for each volume (as seen in the image below).
Support for ZFS Volume Size #21946
Prior to Docker 1.12, there was no way to enforce the size of ZFS volumes, and there is now support via the “–storage-opts” flag.
Support for Disk Quotas with BTRFS #19651
If using BTRFS instead of devicemapper as your default docker filesystem, you can now set a max size or quota for individual docker containers.
Volume Name / Driver Filters #21361
There is now enhanced filtering available for “docker volume” commands / api requests. This allows you to get details for a specific volume name or all volumes accessible by a specific volume driver.
Opaque ID Sent with Volume Mount / Unmount Requests #21015
When volume mount/unmount requests are sent to volume drivers, a unique ID is sent to make sure a volume driver can keep track of individual requests. This will allow volume drivers to better track volume mount and unmount requests.
Minor Fix for SELinux Users #17262
If you’re using SELinux on your docker hosts, #17262 fixes the usage of z/Z permission options when attaching a local directory to a new container. Previously, the start of a new container would result in a failure if the folder did not exist prior to launching.